Как получить список категорий для магазина - PullRequest
0 голосов
/ 17 мая 2011

У меня есть модель магазина, которая может иметь несколько продуктов. У каждого товара есть категория.

Какой самый оптимальный способ получить список категорий товаров в магазине?

Например. В магазине A есть продукты A (Cat1), продукт B (Cat1), продукт C (Cat2)

Я хочу Cat1, Cat2, когда я передаю идентификатор Store A.

Ответы [ 2 ]

0 голосов
/ 17 мая 2011
@store = Store.find(ID)
@categories = @store.products.map {|p| p.category }
0 голосов
/ 17 мая 2011

Итак,

  1. Магазин has_many товаров (каждый товар принадлежит к магазину): отношение один ко многим
  2. Каждый продукт имеет одну категорию (каждая категория принадлежит продукту): отношение один к одному

В вашей таблице Product должно быть поле store_id , а в таблице Category у вас должно быть поле product_id . Затем установите в своих моделях отношение has_many и own_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
...