如果用户只选择子类别,rails如何显示类别名称?
问题描述:
在我的应用程序的用户的has_many类别,类别有DB I创建主类别ID如果用户只选择子类别,rails如何显示类别名称?
,现在我不知道如何正确显示主类别PARENT_ID - 行业标准,如果用户只选择sub_category User.rb
has_many :users_ecategories
has_many :ecategories, through: :users_ecategories
Category.rb
类Ecategory <的ActiveRecord :: Base的
has_many :users_ecategories
has_many :users, through: :users_ecategories
has_many :ecategories, class_name: 'Ecategory', foreign_key: 'parent_id'
end
Users_categories.rb
class UsersCategory < ActiveRecord::Base
belongs_to :user
belongs_to :ecategory
end
的意见/用户/ show.html.erb
<ul>
<% @user.ecategories.each do |ecategory| %>
<%= ecategory.parent.name %>
<li>
<ul>
<% @user.ecategories.where(parent_id: ecategory.parent.id).each do |sub_ecategory| %>
<li>
<%= sub_ecategory.name %>
</li>
</ul>
</li>
</ul>
<% end %>
<% end %>
如果用户选择子1和2子导轨dublicate记录和显示是这样的: 类别1个 孩子1个 孩子2 类1个 孩子1个 孩子2
,但我需要的,如果用户选择孩子1和儿童2个轨只给出 类别1 孩子1 孩子2
感谢
答
你可以尝试分组:
<% @user.ecategories.group_by{|e| e.parent_id}.each do |parent, ecategories| %>
<%= Parent.find(parent).name %>
<!-- whatever Parent is, could be Category, Ecategory, I don't know -->
<% ecategories.each do |ecategory| %>
诸如此类
+0
谢谢你的人! – user3089327 2014-09-06 22:05:10
有适合以及宝石足够在这种情况下:https://github.com/collectiveidea/awesome_nested_set – 2014-09-06 21:23:49