Найти новейшие объекты в ActiveRecord - PullRequest
4 голосов
/ 23 марта 2009

Простой вопрос: мне нужна помощь в написании оператора ActiveRecord find_all_by, в котором я хочу упорядочить вещи от самых новых созданных объектов до самых старых.

Как продолжение этого вопроса: если я сохраню результаты в переменной @records. Как мне тогда попросить следующую запись в нем? Я хочу сделать что-то вроде @current_record = @records.next

Ответы [ 3 ]

6 голосов
/ 23 марта 2009

Этот код сделает ваш начальный запрос

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

И что касается вашего наблюдения. Если вы хотите перебрать возвращаемый массив, вы можете сделать следующее

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

Внутри итератора вы можете установить флаг, когда увидите конкретную запись, а затем сделать что-то со следующей записью в итераторе.

Если вы хотите проверить, есть ли какие-либо записи в массиве, возвращенном искателем, вы можете проверить @ records.length

0 голосов
/ 23 марта 2009

для вопроса 2: что вы подразумеваете под "следующей записью в нем"?

если вы ищете способ отображения результатов, удобно использовать каждый из них:

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

Или даже лучше, с частичным

<%= render :partial => 'record', :collection => @records %>
0 голосов
/ 23 марта 2009
Model.find_all_by_column_name('something', :order => "...")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...