考虑我有一个索引控制器,它将显示所有类别和子类别
我的索引控制器具有@categories = Category.where(状态:true)
category.rb
has_many :sub_categories
这是我的子类别
sub_category.rb
belongs_to :category
我认为我有
<% @categories.each do |category| %>
<%= category.name %>
<% category.sub_categories.each do |sub_category| %>
<%= sub_category.name %>
<% end %>
<% end %>
我sub_category有status(true, false)
我需要的仅显示sub_category
与status
作为true
我怎样才能做到这一点。
通过使用where
,即category.sub_categories.where(status: true)
:
<% @categories.each do |category| %>
<%= category.name %>
<% category.sub_categories.where(status: true).each do |sub_category| %>
<%= sub_category.name %>
<% end %>
<% end %>
甚至更有说服力只需要什么回报,只要选择@categories
具有subcategories
与status = true
。
对于此更新,您在以下位置@categories
定义了控制器的操作代码:
# controller
@categories = Category.includes(:sub_categories).where('sub_categories.status = ?', true)
然后在您看来:
<% @categories.each do |category| %>
<%= category.name %>
<% category.sub_categories.each do |sub_category| %>
<%= sub_category.name %>
<% end %>
<% end %>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句