2
我有一個樁模型和類別模型後
我想顯示一個列表中的所有在一個頁面上按類別的所有信息。
我正確地在每個模型中使用has和belong_to。
我只是無法找到如何在我看來顯示他們。
想我需要的是
類別名稱
- POST1
- POST2
- Post3
類別名稱2
- POST1
- POST2
- Post3
等等
感謝
我有一個樁模型和類別模型後
我想顯示一個列表中的所有在一個頁面上按類別的所有信息。
我正確地在每個模型中使用has和belong_to。
我只是無法找到如何在我看來顯示他們。
想我需要的是
類別名稱
類別名稱2
等等
感謝
在你的控制器集@categories:
@categories = Category.find(:all, :include => :posts) # you may specify your conditions here
# :include is needed to avoid a query on each "category.posts" call later in the view
然後在視圖中:
<% for category in @categories %>
<strong><%= category.name %></strong>
<ul>
<% for post in category.posts %>
<li><%= post.name %></li>
<% end %>
</ul>
<% end %>
您也可以在Enumerable上使用'group_by'方法來查看代碼。 http://api.rubyonrails.org/classes/Enumerable.html#M002570 – samg 2009-12-08 07:13:42
我會添加:包括=>:發送到Category.find調用來消除n + 1查詢問題。這裏的版本可以工作,但它會打到每個類別的數據庫以獲得它的帖子。使用:include會導致ActiveRecord在生成SQL查詢時進行連接。 – madlep 2009-12-08 11:50:05
@madlep,這是真的,謝謝,編輯答案 – mxgrn 2009-12-08 16:38:34