我正在创建一项存储食品食谱的服务,并且我正在尝试创建一个成分列表,其中包含每种成分的可选首选品牌。因此,例如,我可能会说意大利面食谱使用去皮的西红柿,而首选品牌是 Cento。我的成分存储在分层类别树中,因此首选成分是该树中成分的子级。
这是我的简化数据库设置:
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 和 ingredients_id 都指向同一个模型,并且 :preferred_ingredients 实际上并不作为符号存在。我需要以不同的方式设置我的关联吗?