如何按DESC对打印出的列表进行排序

时间:2014-06-30 12:24:41

标签: ruby-on-rails

我正在打印出已回答公司提出的问题的用户列表:

<% @applications.all.each do |application| %>
<% application.answers.each do |answer| %>

  <p>Your question1: <%= answer.application.question_1 %></p>
  <p>Their answer 1: <%= answer.answer_1 %></p>
  <p>Your question 2: <%= answer.application.question_2 %></p>
  <p>Their answer 3: <%= answer.answer_2 %></p>
  <p>Your question 3: <%= answer.application.question_3 %></p>
  <p>Their answer 3: <%= answer.answer_3 %></p>


  <i>Answered by <b><%= link_to "#{answer.user.fullname}", user_path(answer.user.slug) %></b>, <%= time_ago_in_words(answer.created_at) %> ago</i> | <%= button_to "delete this applicant", root_url, data: { confirm: "Are you sure?"}, method: :delete %>
  <hr>
  

现在的问题是它们没有任何特定的顺序。我想对'created_at DESC'进行排序,但未能成功完成。我是在视图中还是在模型中执行此操作?这里推荐什么,我该怎么做。

1 个答案:

答案 0 :(得分:1)

你在控制器返回页面的方法中执行此类操作,例如:index

@applications = Application.all.order("created_at DESC")

如果您想进一步整理逻辑,可以在模型中开始定义scopes,然后在控制器中使用它们。

请勿在视图中定义除基本条件视图逻辑之外的任何内容。