2010-05-20 60 views
0

我實現產品目錄,這看起來像這樣:實施參照根樹的每個葉

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」。

這會給我們簡單的執行搜索請求,比如「show me all items in group 1」。

我們將有一個只處理CatalogModel.catalog_root_group

的問題是 - 這個協會簡化版,工作。我總是得到「catalog_root_group」等於零

而且,我已經試過用的參考根組(「catalog_root_group」)來克服,但我不能構建在Ruby中相應的搜索請求......

待辦事項你知道嗎,該怎麼做?

回答