Ruby on Rails: отображать объекты по самым последним в представлении? - PullRequest
4 голосов
/ 04 апреля 2011

У меня есть этот метод в данный момент:

  <% for comment in @critical_process.review.comments %>
      <div id="comment">
        <%=h comment.comment %> <br/>
        <span id="comment_email">
        By: <%=h comment.user.email%>
        </span>
      </div>
  <% end %>

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

Спасибо

1 Ответ

7 голосов
/ 04 апреля 2011

Предполагая, что модель Comment имеет столбец updated_at, и вы используете Rails 3, вы можете просто указать ActiveRecord упорядочить записи Comment соответствующим образом следующим образом:

<% for comment in @critical_process.review.comments.order('updated_at DESC') %>

Эквивалент Rails 2.xбыло бы:

<% for comment in @critical_process.review.comments.all(:order => 'updated_at DESC') %>

Хотя это будет работать отлично, обычно считается, что лучше всего переместить большую часть генерации ваших запросов в контроллер, и в этом случае вы можете сделать следующее в контроллере:

@comments = @critical_process.review.comments.order('updated_at DESC')

... и затем выполните итерацию по коллекции @comments в представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...