如果用户只选择子类别,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

感谢

+0

有适合以及宝石足够在这种情况下:https://github.com/collectiveidea/awesome_nested_set – 2014-09-06 21:23:49

你可以尝试分组:

<% @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