如何循环浏览用户在所有列表中发布的类别



我正在尝试显示我网站上用户发布的所有类别。这就是我的模型的设置方式:用户能够创建许多列表。这是一对多的关系。一个商品可以有多个分类,而分类有多个商品(有多个商品具有相同的分类(。如何显示用户列出的所有类别?我试过了

<% @user.listings.each.unique.categories do |category| %>
<li><%= category %></li>
<% end %>

以及

<% @user.listings.categories do |category| %>
<li><%= category %></li>
<% end %>

关于如何解决此问题的任何建议?

如果你通过内部用户模型has_many,你可以直接这样做

class User < ApplicationRecord
has_many :listings
has_many :categories, through: :listings
end

然后你可以做

<% @user.categories do |category| %>
<li><%= category %></li>
<% end %>

您可以形成类别列表

<% categories = @user.listings.flat_map { |l| l.categories }.uniq %>
<% categories.each do |category| %>
<li><%= category %></li>
<% end %>

或者使用through配置UserCategory之间的关系

最新更新