Я реализую каталог продуктов, который выглядит примерно так:
group 1
subgroup 1
subgroup 2
item 1
item 2
...
item n
...
subgroup n
group 2
subgroup 1
...
subgroup n
group 3
...
group n
Модели:
class CatalogGroup < ActiveRecord::Base
has_many: catalog_items
has_many :catalog_items_all, :class_name => "CatalogItem", :foreign_key => "catalog_root_group_id"
end
class CatalogItem < ActiveRecord::Base
belongs_to :catalog_group
belongs_to :catalog_root_group, :class_name => "CatalogGroup"
end
Миграция:
class CreateCatalogItems < ActiveRecord::Migration
def self.up
create_table :catalog_items do |t|
t.integer :catalog_group_id
t.integer :catalog_root_group_id
t.string :code
t.timestamps
end
end
Для удобства я сослался на каждый CatalogItem в его самой верхней группе CatalogGoo и назвал эту ассоциацию "catalog_root_group".
Это даст нам простую реализацию поискового запроса, например, «показать мне все элементы в группе 1».
Мы будем иметь дело только с CatalogModel.catalog_root_group
Проблема в том, что эта ассоциация не работает. Я всегда получаю "catalog_root_group" равным нулю
Кроме того, я попытался преодолеть использование ссылки на корневую группу ("catalog_root_group"), но не могу создать соответствующий поисковый запрос в ruby ...
Вы знаете, как это сделать?