我正在創建一個服務來存儲食物食譜,並且我正在嘗試爲每種成分創建一個可選的首選品牌成分列表。舉例來說,我可能會說意大利麪配方使用去皮番茄,首選品牌是Cento。我的成分被存儲在一個分層的分類樹中,所以首選的成分是該樹中成分的一個孩子。Rails協會難題
這是我簡單的數據庫設置:
recipes
- name
- instructions
ingredients
- name
recipe_ingredients
- recipe_id
- ingredient_id
- preferred_ingredient_id
- amount
而且協會:
class Recipe < ActiveRecord::Base
has_many :recipe_ingredients
has_many :ingredients, :through => :recipe_ingredients
has_many :preferred_ingredients, :through => :recipe_ingredients
end
class Ingredient < ActiveRecord::Base
end
class RecipeIngredient < ActiveRecord::Base
belongs_to :recipe
has_one :ingredient
has_one :preferred_ingredient
end
我不知道如何處理preferred_ingredient_id和ingredient_id都指向同一個模型,並指出:preferred_ingredients實際上並不是一個象徵。我需要以不同的方式設置我的關聯嗎?
'model_name'是belongs_to的關聯 'belongs_to的未知鍵:preferred_ingredient,CLASS_NAME:「Ingredient'' 它應該是代替 – swapab 2013-02-27 07:58:28
@ swap.nil感謝指點那個。固定。 – bdares 2013-02-27 09:56:22
這很有道理。謝謝您的幫助! – 2013-02-27 15:33:29