对于我的应用程序,我需要找到该产品的类别。但不知道如何找到它。类别有许多子类别。子类别有很多产品。子类别和产品通过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
我正在显示“产品”页面,并希望显示其类别。这该怎么做?如果我需要提供任何其他信息,请告诉我。
答案 0 :(得分:0)
在您的控制器中
@products = Product.all
在您的观点中
@products.each do |product|
product_category = product.sub_category.category
end
通过这样做,您可以获得产品的类别对象
答案 1 :(得分:0)
我假设您只需要在显示产品信息(显示操作)时获取产品所属的类别,而不是子类别。
控制器中的
def show
@product = Product.includes(:categories).find(params[:id])
end
并在您的视图中(show.html.erb)
<% @product.categories.each do |category| %>
<span><%= category.name %></span>
<% end %>
希望它会有所帮助。我还没有测试过它。
答案 2 :(得分:0)
product.category 会为您提供产品类别的ID。 product.categroy.name 会为您提供产品类别的名称。您可以在视图中使用它。
注意:如果你们之间有has_many和belongs_to关系。谢谢 享受!