-1

私のアプリでは、製品のカテゴリを見つける必要があります。しかし、それを見つける方法がわかりません。カテゴリには多くのサブカテゴリがあります。サブカテゴリには多くの製品があります。SubCategory と製品は、product_sub_category によって関連付けられます。商品のカテゴリーを知る方法はありますか?ヘルプ!

Category model is:
  has_many :sub_categories
  accepts_nested_attributes_for :sub_categories, :allow_destroy => true
  has_many :products, :through => :sub_categories

Sub-category model:
  attr_accessible :category_id, :description, :sub_category, :sub_category_url
  belongs_to :category
  has_many :product_sub_categories
  has_many :products, :through => :product_sub_categories
  has_one :photo, :as => :attachable, :dependent => :destroy  
  accepts_nested_attributes_for :photo, :allow_destroy => true

ProductSubCategory
  belongs_to :product
  belongs_to :sub_category
  belongs_to :category
  attr_accessible :sub_category_id
  before_save :assign_category_id

Product
  belongs_to :user
  has_many   :product_sub_categories
  has_many   :sub_categories, :through => :product_sub_categories
  has_many   :categories, :through => :sub_categories 
  accepts_nested_attributes_for :photos, :allow_destroy => true
  accepts_nested_attributes_for :product_sub_categories

商品ページを表示していて、そのカテゴリを表示したい。これを行う方法?他の情報を提供する必要がある場合はお知らせください。

4

3 に答える 3

0

あなたのコントローラーで

@products = Product.all

あなたの見解では

@products.each do |product|    
  product_category = product.sub_category.category
end

これを行うことにより、製品のカテゴリオブジェクトを取得します

于 2013-01-28T10:32:21.903 に答える
0

製品情報を表示しているときにサブカテゴリではなく、製品が属するカテゴリを取得するだけでよいと思います(アクションを表示)。

あなたのコントローラーで

def show
  @product = Product.includes(:categories).find(params[:id])
end

そしてあなたの見解(show.html.erb)で

<% @product.categories.each do |category| %>
  <span><%= category.name %></span>
<% end %>

それが役立つことを願っています。まだテストしていません。

于 2013-01-28T10:41:30.653 に答える
0

product.categoryは、製品のカテゴリの ID を提供します。また、product.categroy.nameは、製品のカテゴリの名前を示します。ビューで使用できます。

注: それらの間に has_many と belongs_to の関係がある場合。ありがとう!

于 2017-09-07T23:00:38.593 に答える