在ActiveRecord中预加载has_one列值

时间:2016-03-14 17:23:26

标签: ruby-on-rails activerecord

我有一个has_one关联,我真的只需要一个列的值:

class Item < ActiveRecord::Base
  has_one :last_view, -> {order(viewed_at.desc).limit(1).select(:viewed_at)

是否有可能以某种方式仅检索列值(最好不从Item中选择时编写原始SQL),从而节省关联模型实例化成本,同时仍然可以预加载关联?

为了澄清,我希望能够做到这一点:

class Item < ActiveRecord::Base
  has_one :last_view, -> {order(viewed_at.desc).limit(1).pluck(:viewed_at)

然后这只会运行一个查询:

Item.preload(:last_view).map(&:last_view)

0 个答案:

没有答案