【问题标题】:rails how to show categories name if user select only subcategory?如果用户仅选择子类别,rails如何显示类别名称?
【发布时间】: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

谢谢

【问题讨论】:

标签: ruby-on-rails ruby activerecord ruby-on-rails-4


【解决方案1】:

你可以尝试分组:

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

等等

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多