从模型轨道中抓取最新的3条记录

时间:2013-06-28 10:30:34

标签: ruby ruby-on-rails-3 activerecord

只是想知道是否有更有效的方法来处理以下查询,我的控制器中有

@latest = Portfolio.limit(3).order('taken desc')

从我的模型中提取最新的3条记录。

是否有更高效的查询可以处理此问题,是否可以在模型的范围内更好地提供查询?

建议赞赏

由于

1 个答案:

答案 0 :(得分:3)

这样的事应该可以正常工作

class Portfolio < ActiveRecord::Base
  scope :last_three_taken, -> { order('taken desc').limit(3) }
end

这将使您的控制器更加独立于数据库逻辑:

@latest = Portfolio.last_three_taken

因此,从性能的角度来看,它不会更有效率,但在我看来它会获得更好的MVC分离。