【发布时间】:2023-03-23 08:29:01
【问题描述】:
我正在尝试列出与尚未创建的另一个模型关联的模型实例。
这是我的模型的关联方式:
Ticket.rb:
has_one :purchase
has_one :user, through: :purchase
用户.rb:
has_many :purchases
has_many :tickets, through: :purchases
Purchase.rb:
belongs_to :ticket
belongs_to :user
我有一个 SQL 查询,但在将其转换为 rails 时遇到了麻烦:
SELECT id FROM tickets
EXCEPT
SELECT ticket_id FROM purchases;
它非常好用,因为它返回了所有尚未购买的门票的 id。
我试过了:
Ticket.joins('LEFT JOIN ON tickets.id = purchases.ticket_id').where(purchases: {ticket_id: nil})
但这似乎不是正确的方向。
【问题讨论】:
-
Ticket.joins('LEFT JOIN ON tickets.id = purchases.ticket_id').where(purchases: {ticket_id: nil}您忘记指定表名,例如Ticket.joins('LEFT JOIN purchases ON tickets.id = purchases.ticket_id').where(purchases: {ticket_id: nil}
标签: ruby-on-rails ruby postgresql activerecord associations