Ruby on Rails:在视图中最近显示对象?

时间:2011-04-04 16:24:13

标签: ruby-on-rails

目前我有这种方法:

  <% 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 个答案:

答案 0 :(得分:7)

假设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集合。