我正在尝试为配方创建rails应用程序,但我对如何创建视图表单和控制器逻辑感到困惑。我有两个模型,配方和项目,加入了has_many :through
与一个成分模型的关联,如下所示:
class Recipe < ActiveRecord::Base
has_many :ingredients
has_many :items, :through => :ingredients
end
class Item < ActiveRecord::Base
has_many :ingredients
has_many :recipes, :through => :ingredients
end
class Ingredient < ActiveRecord::Base
# Has extra attribute :quantity
belongs_to :recipe
belongs_to :item
end
此关联在控制台中有效。例如:
Recipe.create( :name => 'Quick Salmon' )
Item.create( :name => 'salmon', :unit => 'cups' )
Ingredient.create( :recipe_id => 1, :item_id => 1, :quantity => 3)
Recipe.first.ingredients
=> [#<Ingredient id: 1, recipe_id: 1, item_id: 1, quantity: 3]
Recipe.first.items
=> [#<Item id: 1, name: "salmon", unit: "cups"]
但是,我不明白如何创建新的配方视图,以便我可以在一个页面中将配料直接添加到配方中。我需要使用fields_for
还是嵌套属性?如何在一个页面中构建视图表单和控制器逻辑以创建配方?
我在Rails 3.1.3上。