shipment has_one :invoice
invoice belongs_to :shipment
对于每次发货,都可以创建一张发票。我想找到所有没有发票的货物。最好没有直接的SQL,我想使用rails的find方法。
答案 0 :(得分:3)
您是否考虑稍微改变您的架构?
class Shipment
belongs_to :invoice
end
class Invoice
has_one :shipment
end
然后你就可以做到这一点:
Shipment.where(:invoice_id => nil)
说明:
has_one
和belongs_to
都表达了一对一的关系。如果它是belongs_to
,则模型会将外键存储到关联中的另一条记录。因此,在这种情况下,表格shipments
将包含invoice_id
,您可以使用它。