2

我有一些记录:

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' for #

我需要在控制器/模型中添加一些方法吗?为什么 - 如果 .each 方法在视图中可以正常工作,而 group 不能?

4

2 回答 2

0

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

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

于 2012-12-04T15:14:53.103 回答
0

通常实例变量是小写的,@orders不是@Orders. 该错误告诉您它无法group为 中的任何内容找到方法@Orders,因此这就是您要关注的内容。

整理好之后,您可能想要使用 ActiveRecorddistinct运算符,或者,如果您的记录是 ruby​​ 格式,请.uniq在集合(即数组)上使用。

于 2012-12-04T14:52:26.733 回答