【发布时间】:2009-03-23 11:05:41
【问题描述】:
简单的问题:我需要帮助编写 ActiveRecord find_all_by 语句,我想在其中对从最新创建的对象到最旧的对象进行排序。
作为这个问题的后续:如果我将结果保存到变量 @records.然后我如何要求其中的下一条记录?我想做类似@current_record = @records.next
【问题讨论】:
标签: ruby-on-rails activerecord
简单的问题:我需要帮助编写 ActiveRecord find_all_by 语句,我想在其中对从最新创建的对象到最旧的对象进行排序。
作为这个问题的后续:如果我将结果保存到变量 @records.然后我如何要求其中的下一条记录?我想做类似@current_record = @records.next
【问题讨论】:
标签: ruby-on-rails activerecord
此代码将执行您的初始查询
@records = Model.find_all_by_column('value', :order => 'created_at DESC')
关于您的跟进。如果要遍历返回的数组,则可以执行以下操作
@records.each do |record|
# Code to do something
end
在迭代器中,您可以在看到特定记录时设置一个标志,然后对迭代器中的下一条记录执行某些操作。
如果您想检查查找器返回的数组中是否有任何记录,则可以检查@records.length
【讨论】:
Model.find_all_by_column_name('something', :order => "...")
【讨论】:
对于问题 2:“其中的下一条记录”是什么意思?
如果你搜索一种显示结果的方式,使用每一种都很方便:
<% @records.each do |record| %>
#...
<% end %>
或者甚至更好,带有部分
<%= render :partial => 'record', :collection => @records %>
【讨论】: