0

製品.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

4

1 に答える 1