如何获取商店的类别列表

时间:2011-05-17 03:34:25

标签: ruby-on-rails categories

我有一个可以有多个产品的商店模型。每个产品都有一个类别。

获取商店中产品类别列表的最佳方式是什么?

例如。商店A有产品A(Cat1),产品B(Cat1),产品C(Cat2)

当我通过商店A的ID时,我想要Cat1,Cat2。

2 个答案:

答案 0 :(得分:0)

所以,

  1. 商店has_many产品(每个产品belongs_to商店):一对多关系
  2. 每个产品都有一个类别(每个类别属于一个产品):一对一的关系
  3. 在您的“产品”表格中,您应该有 store_id 字段,并且在“类别”表格中,您应该有 product_id 字段。然后在模型中设置 has_many belongs_to 关系。

    # beware of the use of pluralization
    
    # Store model
    class Store < ActiveRecord::Base
      has_many :products                    
    end
    
    # Product model
    class Product < ActiveRecord::Base
      belongs_to :store
      has_one :category
    end
    
    # Category model
    class Category < ActiveRecord::Base
      belongs_to :product
    end
    
    # e.g. access category of a product in your Store Controller
    # or loop it in your Store view
    @store = Store.find_by_id(myInt)
    @firstProductCategory = @store.products[0].category.name
    

答案 1 :(得分:0)

@store = Store.find(ID)
@categories = @store.products.map {|p| p.category }