这是我的代码。 我参加第一类考试 - 请不要。
// Controller
@categories = Category.find(1).subcategories # Works exellent
@articles = []
@categories.each do |category|
@articles[category.id] = category.articles
end
// View
<% @categories.each do |category| %>
<h2><%= category.title %></h2>
<ul>
<% @articles[category.id].each do |article| %>
<li><a href="<%= article.slug %>"><%= article.title %></a></li>
<% end %>
</ul>
<% end %>
这是我的输出(其中'vel','in','sit' - 子类别名称):
vel
[nil, nil, nil, nil, nil, nil, #<ActiveRecord::Associations::CollectionProxy []>, #<ActiveRecord::Associations::CollectionProxy []>, #<ActiveRecord::Associations::CollectionProxy []>]
in
[nil, nil, nil, nil, nil, nil, #<ActiveRecord::Associations::CollectionProxy []>, #<ActiveRecord::Associations::CollectionProxy []>, #<ActiveRecord::Associations::CollectionProxy []>]
sit
[nil, nil, nil, nil, nil, nil, #<ActiveRecord::Associations::CollectionProxy []>, #<ActiveRecord::Associations::CollectionProxy []>, #<ActiveRecord::Associations::CollectionProxy []>]
我有正确的工作协会:
Catogory:
has_many :articles
has_many :subcategories
has_one :parent
第
belongs_to :category
我阅读了很多文档并找到了一些有用的宝石(awesome_nested_set,ancestry),但是想知道没有额外的宝石怎么做
答案 0 :(得分:1)
你可以写得更清洁:
# Controller
@categories = Category.find(1).subcategories.includes(:articles)
# View
<% @categories.each do |category| %>
<h2><%= category.title %></h2>
<ul>
<% category.articles.each do |article| %>
<%= link_to article.title, article.slug %> # Do you really use slug for url?
<% end %>
</ul>
<% end %>