简单的问题:我需要帮助编写一个ActiveRecord find_all_by
语句,我想从最新创建的对象到最旧的对象。
作为这个问题的后续行动:如果我将结果保存到变量@records中。那么我如何要求下一个记录呢?我想做@current_record = @records.next
答案 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 %>