Активная запись - PullRequest
       8

Активная запись

0 голосов
/ 25 августа 2011

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

Товар и каталог имеют много-много общего.Один продукт может принадлежать многим каталогам и наоборот.

Итак, мое определение модели выглядит следующим образом:

class Store < ActiveRecord::Base
   has_many :store_catalogs
   has_many :catalogs, :through => :store_catalogs
end

class StoreCatalog < ActiveRecord::Base
  belongs_to :store
  belongs_to :catalog
end

class Catalog < ActiveRecord::Base
    has_many :store_catalogs
    has_many :stores, :through => :store_catalogs
    has_and_belongs_to_many :product_set, :class_name => "Product"
 end    

class Product < ActiveRecord::Base
   has_and_belongs_to_many :catalogs
end

Теперь я хотел бы получить доступ ко всем продуктам, которые принадлежатхранить.Как мне связать их вместе, чтобы получить это?пожалуйста, предложите.

Я пробую различные комбинации с консоли rails для извлечения данных, но не уверен, что сама консоль каким-либо образом ограничивает запросы, основанные на отношениях (хотя я хотел бы верить, что это не так).

1 Ответ

1 голос
/ 25 августа 2011

Я думаю, что это должно решить вашу проблему

class Store < ActiveRecord::Base
  has_many :catalogs
  has_many :products, :through => :catalogs
end

class Catalog < ActiveRecord::Base
  belongs_to :store
  has_and_belongs_to_many :products
end

class Product < ActiveRecord::Base
  has_and_belongs_to_many :catalogs
end

И тогда вам просто нужна таблица в вашей базе данных, которая называется catalogs_products с catalog_id и product_id, чтобы связать ассоциацию has_and_belongs_to_many.

Тогда, чтобы получить все товары из магазина, просто сделайте

Store.find(id).products
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...