我試圖構建如展示的多級模型。當用戶創建一個活動時,他們將從表類別和地鐵中選擇一些類別和一些地鐵。然後這些選擇將作爲campaign_category和campaign_metro放在兩個表中。但是,在創建這些條目後,我希望能夠使用表campaign_category_metro中這些組合的排列填充另一個表,以便鏈接廣告系列,爲用戶選擇的類別和都市區設置出價。Rails Multi Level has_many通過
更新:
例如說一個用戶創建具有ID 10和ID爲1和2的選擇的類別的運動,並顯示已ID 3和4在表中campaign_category地鐵:
,並在表campaign_metro出現:
在campagin_category_metro我希望有上述作爲從表中的那些置換行:
然後用戶可以設置在這些運動/地鐵組合出價。
截至目前,在創建廣告系列和選擇類別和地鐵時,我可以獲取表格campaign_category和campaign_metro,但最終的表格campaign_category_metro保持空白。下面是我的模型是:
第一層次:
class Campaign < ActiveRecord::Base
has_many :campaign_metros, dependent: :destroy
has_many :metros, through: :campaign_metros
has_many :campaign_categories, dependent: :destroy
has_many :categories, through: :campaign_categories
end
class Category < ActiveRecord::Base
has_many :campaign_categories, dependent: :destroy
has_many :campaigns, through: :campaign_categories
end
class Metro < ActiveRecord::Base
has_many :campaign_metros, dependent: :destroy
has_many :campaigns, through: :campaign_metros
end
二級(填充,而是關係到campaign_category_metro什麼都不做):
class CampaignCategory < ActiveRecord::Base
belongs_to :campaign
belongs_to :category
has_many :campaign_category_metros, dependent: :destroy
has_many :campaign_metros, through: :campaign_category_metros
end
class CampaignMetro < ActiveRecord::Base
belongs_to :campaign
belongs_to :metro
has_many :campaign_category_metros, dependent: :destroy
has_many :campaign_categories, through: :campaign_category_metros
end
第三級(什麼也不顯示在創建):
class CampaignCategoryMetro < ActiveRecord::Base
belongs_to :campaign_category
belongs_to :campaign_metro
end
我怎樣才能允許第三級表是po在創立活動時選擇了所選類別和地鐵的排列組合?
你想用CampaignCategoryMetro解決什麼問題?即使它被填充,其中的信息也是多餘的。 – 2014-09-26 00:37:44
是的,你爲什麼加入模型需要記錄來知道其他模型是什麼?你可以問它的父母。 – DiegoSalazar 2014-09-26 00:53:19
我已更新表campaign_category_metro以說明原因。每個類別和地鐵的選擇,這些分組的組合都將有其各自的投標價格,用戶以後可以設置 – Sauron 2014-09-26 00:54:27