Есть пользователи у пользователей есть категории выполняемых работ, у категорий есть субкатегории в той же табличке но с parent_id родительской категории
сделал так:
User.rb
has_many :users_ecategories
has_many :ecategories, through: :users_ecategories
jointable
users_ecategory.rb
class UsersEcategory < ActiveRecord::Base
belongs_to :user
belongs_to :ecategory
end
ecategory.rb
class Ecategory < ActiveRecord::Base
has_many :users_ecategories
has_many :users, through: :users_ecategories
belongs_to :parent, class_name: 'Ecategory', foreign_key: 'parent_id'
end
во вьюхе указываю:
<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 %>
но вытаскивает следующее
Посетитель
Привилегированный посетитель
Простой посетитель
Посетитель
Привилегированный посетитель
Простой посетитель
то есть вытаскивает родительскую категорию два раза, а надо чтобы один раз и под ней дочерние подскажите как лучше сделать?