Ruby on rails 3 在Rails 3中使用标题对记录进行分组
我的Rails 3应用程序中有一个articles模型。文章模型有一个名为categories的列,该列是使用新表单视图中的选择框设置的。这是一个选择框,因为选项永远不会更改,并且只有四个选项 我拥有的索引视图代码如下:Ruby on rails 3 在Rails 3中使用标题对记录进行分组,ruby-on-rails-3,model,group-by,Ruby On Rails 3,Model,Group By,我的Rails 3应用程序中有一个articles模型。文章模型有一个名为categories的列,该列是使用新表单视图中的选择框设置的。这是一个选择框,因为选项永远不会更改,并且只有四个选项 我拥有的索引视图代码如下: <% @articles.category.each do |article| %> <%= article.category %> <% @articles.each do |article| %> <tr> &
<% @articles.category.each do |article| %>
<%= article.category %>
<% @articles.each do |article| %>
<tr>
<td><%= article.title %></td>
<td><%= article.author %></td>
<td><%= article.category %></td>
<td><%= link_to 'Show', article %></td>
<td><%= link_to 'Destroy', article, confirm: 'Are you sure?', method: :delete %></td>
</tr>
<% end %>
<% end %>
但是,这会导致一个异常,该异常指向以下行
在我的视图代码中,实现以下目标的最整洁方式是什么:
第一类
第一条
第二条
第2类
第五条
第3类
第八条
因此,每一篇文章都列在它的类别下。我建议您使用group_by method:
@articles = Article.group(:category).order('title ASC')
# in your controller
articles = Article.order('title ASC')
@grouped_articles = articles.group_by &:category
# in your view
<% @grouped_articles.each do |category, articles| %>
<%= category %>
<% articles.each do |a| %>
<tr>
<td><%= a.title %></td>
<td><%= a.author %></td>
<td><%= link_to 'Show', a %></td>
<td><%= link_to 'Destroy', a, confirm: 'Are you sure?', method: :delete %> </td>
</tr>
<% end %>
<% end %>