Rails - 显示分组记录

时间:2012-12-04 14:39:30

标签: ruby-on-rails view unique

我有一些记录:

Type Name
2 USA
2 USA
3 Canada
4 Mexico 
1 Canada
2 Mexico
3 USA

我只想显示唯一类型列表:1,2,3,4(没有双重,三重记录)。 我试图在我看来做类似的事情:

<% @Orders.group(:type).each do |order| %>
... showing in the table
<% end %>

但我得到以下错误: #

的未定义方法`group'

我是否需要在控制器/模型中添加一些方法? 为什么 - 如果.each方法在视图中正常工作,则组不会?

2 个答案:

答案 0 :(得分:0)

通常,实例变量是小写的,即@orders而不是@Orders。该错误告诉您无法找到group中的@Orders方法,因此您将关注它。

一旦整理好了,你可能想要使用ActiveRecord distinct运算符,或者,如果你的记录是ruby,则在集合(即数组)上使用.uniq

答案 1 :(得分:0)

有点不清楚你究竟想要返回/显示什么,但我想你可能想看看#group_byhttp://api.rubyonrails.org/classes/Enumerable.html#method-i-group_by)。

或者,请查看此页面上的一些汇总方法:http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-calculate