假设我有这些模型:
class Order < ActiveRecord::Base
has_many :lines
end
class Line < ActiveRecord::Base
belongs_to :order
end
我想在一个请求中加载一些订单记录及其#line_ids
。但是,我宁愿不将所有Line记录实例化为ActiveRecord对象。另外,我不想覆盖ActiveRecord提供的#line_ids
方法。
这可能吗?
答案 0 :(得分:0)
选择单个列而不是选择行不应该产生太大的性能差异,除非您在Line模型上有许多属性,这可能反过来提示重构。
如果你只想要id,我可能会在我的订单模型中做这样的事情
def line_ids_array
Line.where(order_id: self.id).pluck(:id)
end
这应该返回特定订单的行ID的数组。