首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果用户只选择子类别,rails如何显示类别名称?

如果用户只选择子类别,rails如何显示类别名称?
EN

Stack Overflow用户
提问于 2014-09-06 18:53:20
回答 1查看 254关注 0票数 0

在我的应用程序用户has_many类别中,类别在db中有sub_categories,我用主类别id创建parent_id

现在,如果用户只选择sub_category User.rb,我不知道如何正确显示主类别

代码语言:javascript
复制
has_many :users_ecategories
  has_many :ecategories, through: :users_ecategories

Category.rb

类E< ActiveRecord::Base

代码语言:javascript
复制
has_many :users_ecategories
has_many :users, through: :users_ecategories
has_many :ecategories, class_name: 'Ecategory', foreign_key: 'parent_id'

end

Users_categories.rb

代码语言:javascript
复制
class UsersCategory < ActiveRecord::Base 
belongs_to :user 
belongs_to :ecategory 
end

视图/用户/show.html.erb

代码语言:javascript
复制
<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。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-06 21:24:08

您可以尝试分组:

代码语言:javascript
复制
<% @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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25703666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档