製品.rb
class Product < ActiveRecord::Base
has_many :categories, through: :product_categories
has_many :product_categories, dependent: :destroy
カテゴリー.rb
class Category < ActiveRecord::Base
attr_accessible :name
# accepts_nested_attributes_for :product_categories
has_many :products, through: :product_categories
has_many :product_categories, dependent: :destroy
default_scope :order => 'id'
end
static_pages_controller.rb
...
def catalog
@categories = Category.all
render layout: "catalog"
end
私の見解:
// uses tabbable navigation from bootstrap to iterate over the categories, then it iterates over each product and inserts them into .tab-content
.row-fluid
.span8.offset2
.tabbable
%ul.nav.nav-tabs
%li.active
%a{"data-toggle" => "tab", :href => "#tab-#{@categories.first.id}"} #{@categories.first.name}
- @categories.each do |category|
-unless category == @categories.first
%li
%a{"data-toggle" => "tab", :href => "#tab-#{category.id}"} #{category.name}
.tab-content
.tab-pane.fade.in.active{id: "tab-#{@categories.first.id}"}
%h3.center #{@categories.first.name}
%hr
- if @categories.first.products.count == 0
.span6.offset3
This category is empty.
-else
- @categories.first.products.each do |product|
= render 'product', :product => product
- @categories.each do |category|
-unless category == @categories.first
.tab-pane.fade{id: "tab-#{category.id}"}
%h3.center #{category.name}
%hr
- if category.products.count == 0
.span6.offset3
This category is empty.
-else
- category.products.each do |product|
= render 'product', :product => product
現在、カテゴリ内のすべての製品が表示されます。:status => "published" の製品のみを表示したいと思います。コントローラーで、これにアプローチする方法がわかりませんか?疲れていて、SQL クエリ構文にあまり慣れていません。だから私の無知を許してください:P