2011-05-19 38 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