모든 카테고리와 하위 카테고리를 표시하는 인덱스 컨트롤러가 있다고 생각합니다.
내 인덱스 컨트롤러에는 @categories = Category.where (status : true)
category.rb
has_many :sub_categories
여기 내 sub_category
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에는 as 와 함께 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] 삭제
몇 마디 만하겠습니다