【发布时间】:2012-09-20 14:51:45
【问题描述】:
这可能是一个简单的问题,但我似乎很想在这里找到一个优雅的解决方案。我有两个 ActiveRecord 模型类,它们之间有一个 has_one 和 belongs_to 关联:
class Item < ActiveRecord::Base
has_one :purchase
end
class Purchase < ActiveRecord::Base
belongs_to :item
end
我正在寻找一种优雅的方式来查找所有没有与之关联的购买对象的 Item 对象,最好不要在 Item 上使用布尔值 is_purchased 或类似属性。
现在我有:
purchases = Purchase.all
Item.where('id not in (?)', purchases.map(&:item_id))
这很有效,但对我来说似乎效率低下,因为它正在执行两个查询(并且购买可能是一个庞大的记录集)。
运行 Rails 3.1.0
【问题讨论】:
标签: ruby-on-rails ruby activerecord