我实施的产品目录看起来像这样:
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引用到它最顶层的CatalogGroup,并将此关联命名为“catalog_root_group”。
这将为我们提供搜索请求的简单实现,例如“向我显示组1中的所有项目”。
我们只与CatalogModel.catalog_root_group
达成协议问题是 - 这种关联不起作用。我总是得到“catalog_root_group”等于nil
另外,我试图克服使用对root组的引用(“catalog_root_group”),但我无法在ruby中构建适当的搜索请求...
你知道吗,怎么做?