【发布时间】:2014-10-31 10:58:24
【问题描述】:
在我的应用用户有_many 类别中,类别在数据库中有子类别我创建具有主类别ID 的parent_id
现在我不知道如果用户只选择 sub_category 时如何正确显示主类别 用户.rb
has_many :users_ecategories
has_many :ecategories, through: :users_ecategories
类别.rb
类类别<: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
views/user/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 %>
如果用户选择 child 1 和 child 2 rails 复制记录并显示如下内容: 第一类 孩子 1 孩子 2 第一类 孩子 1 孩子 2
但如果用户只选择子 1 和子 2 导轨,我需要 第一类 孩子 1 孩子 2
谢谢
【问题讨论】:
-
有一个 gem 非常适合这种情况:github.com/collectiveidea/awesome_nested_set
标签: ruby-on-rails ruby activerecord ruby-on-rails-4