Я пытаюсь создать приложение rails для рецептов, но не совсем понимаю, как создавать формы представления и логику контроллера.У меня есть 2 модели, Рецепт и Предмет, объединенные в 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.