在我的应用程序用户has_many类别中,类别在db中有sub_categories,我用主类别id创建parent_id
现在,如果用户只选择sub_category User.rb,我不知道如何正确显示主类别
has_many :users_ecategories
has_many :ecategories, through: :users_ecategoriesCategory.rb
类E< ActiveRecord::Base
has_many :users_ecategories
has_many :users, through: :users_ecategories
has_many :ecategories, class_name: 'Ecategory', foreign_key: 'parent_id'
endUsers_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,rails一式两份的记录,并显示如下所示:类别1,子,2,2,子1,子2
但是,如果用户选择子1和子2 rails,那么我需要只给出类别1,子1,子2。
谢谢
发布于 2014-09-06 21:24:08
您可以尝试分组:
<% @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| %>以此类推
https://stackoverflow.com/questions/25703666
复制相似问题