如何使用rails3创建范围以获取最后十个事务

时间:2011-01-20 06:14:45

标签: ruby-on-rails-3 scope

尝试将范围添加到我的事务模型中,以返回created_at

的最后10个事务

3 个答案:

答案 0 :(得分:16)

scope :most_recent, order(created_at: :desc).limit(10)

答案 1 :(得分:12)

使用范围

# Ruby 1.8 style
scope :recent, lambda { |num| order('created_at DESC').limit(num) }

# Ruby 1.9/2.0 style
scope :recent, ->(num) { order('created_at DESC').limit(num) }

示例用法:

<% Organization.recent(10).each do |organization| %>
  <li><% link_to organization.name, organization %></li>
<% end %>

答案 2 :(得分:1)

如果要在关联时执行此操作,可以直接限制从关联中检索的记录数

class School
 has_many :students -> order(created_at: :desc).limit(10)
end