2011-05-19 56 views
0

我有两个模型,一个是Group,另一个Item。Rails ActiveRecord:动态字段上的选择和排序

一组有很多项目。

我正在尝试对组运行查询,并将每个组的项目数作为组对象的方法返回。

的观点应该是:

<% @groups.each do |group| %> 
    <tr><td><%= group.name %></td><td><%= group.items_count %></td> ... and other fields 
<% end %> 

我希望能够做一个Group.where()调用页面包括动态属性items_count,并能够通过ITEM_COUNT结果进行排序,只是。作为sql表的标准属性。我怎样才能以简单的方式做到这一点?

+0

你有没有在看做一个范围?还有一些很好的信息[这里](http://www.railway.at/2010/03/09/named-scopes-are-dead/) – 2011-05-19 15:11:10

回答

1

最简单的方法可能是获取你需要无特定顺序的组,然后在你的控制器之后对它们进行排序:

def my_action 
    @groups = Group.all() # or Group.where(...) for more specific filtering 
    @groups.sort! { |g1, g2| g1.items_count <=> g2.items_count } 
    ... 
end 
+0

我希望能够做到:@ groups.all.sort (params [:sort_by]),其中sort_by包含'items_count'或'group_name'等。 – 2011-05-19 14:48:47

相关问题