1

假设我有这些模型:

class Order < ActiveRecord::Base
  has_many :lines
end

class Line < ActiveRecord::Base
  belongs_to :order
end

我想#line_ids在一个请求中加载一些订单记录及其。不过,我宁愿不将所有 Line 记录实例化为 ActiveRecord 对象。另外,我宁愿不覆盖#line_idsActiveRecord 提供的方法。

这可能吗?

4

1 回答 1

0

选择单列与选择行应该不会产生太大的性能差异,除非您在 Line 模型上有许多属性,这反过来可能是重构的提示。

如果你只想要 id,我可能会在我的 Order 模型中做这样的事情

def line_ids_array
  Line.where(order_id: self.id).pluck(:id)
end

这应该返回特定订单的行 ID 数组。

于 2013-03-20T18:47:29.703 回答