0

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

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

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

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

建议赞赏

谢谢

4

1 回答 1

3

像这样的东西应该可以正常工作

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

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

@latest = Portfolio.last_three_taken

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

于 2013-06-28T10:33:38.453 回答