在View中对模型对象进行排序 - 在View中调用Model方法或在Controller中实现排序?

时间:2009-10-10 03:10:56

标签: ruby-on-rails

默认情况下我打电话给你:

<table>
  <% @question.answers.each do |answer| %>
  <tr>

问题的答案按创建顺序显示。

根据他们的投票对他们进行排序的适当方法是什么?

我不确定是否需要在视图中的答案上调用方法或在Controller或模型中实现排序功能。

2 个答案:

答案 0 :(得分:1)

这主要是风格问题。

个人:

  • 如果是硬编码排序顺序,只需将其粘贴在视图中即可。
  • 如果它背后有一些逻辑(基于请求参数,需要分页或其他任何有趣的),那么将该集合粘贴在@answers变量中。

答案 1 :(得分:1)

如果我这样做一次,我会在视图中执行此操作:

<% @questions.sort {|x,y| y.votes <=> x.votes }.each do |question| %>
  <p><%= @question.title %></p>       
<% end %>

和cwninja一样,如果有什么比这更有意思的话,我会在控制器或助手中做逻辑。