在ActiveRecord中查找最新的对象

时间:2009-03-23 11:05:41

标签: ruby-on-rails activerecord

简单的问题:我需要帮助编写一个ActiveRecord find_all_by语句,我想从最新创建的对象到最旧的对象。

作为这个问题的后续行动:如果我将结果保存到变量@records中。那么我如何要求下一个记录呢?我想做@current_record = @records.next

之类的事情

3 个答案:

答案 0 :(得分:6)

此代码将执行您的初始查询

 @records = Model.find_all_by_column('value', :order => 'created_at DESC')

关于你的跟进。如果要迭代返回的数组,则可以执行以下操作

 @records.each do |record|
  # Code to do something
 end

在迭代器中,你可以在看到特定记录时设置一个标志,然后对迭代器中的下一条记录做一些事情。

如果你想检查finder返回的数组中是否有任何记录,那么你可以检查@ records.length

答案 1 :(得分:0)

Model.find_all_by_column_name('something', :order => "...")

答案 2 :(得分:0)

问题2:“你的下一个记录”是什么意思?

如果您搜索显示结果的方法,则可以方便地使用每种方法:

<% @records.each do |record| %>
   #...
<% end %>

甚至更好,部分

<%= render :partial => 'record', :collection => @records %>