Я пытаюсь заставить работать вложенные формы моделей . Насколько я могу сказать, я все делаю правильно, но все равно не работает.
Я на Rails 3 beta 3.
Мои модели, как и ожидалось:
class Recipe < ActiveRecord::Base
has_many :ingredients, :dependent => :destroy
accepts_nested_attributes_for :ingredients
attr_accessible :name
end
class Ingredient < ActiveRecord::Base
attr_accessible :name, :sort_order, :amount
belongs_to :recipe
end
Я могу использовать Recipe.ingredients_attributes =, как и ожидалось:
recipe = Recipe.new
recipe.ingredients_attributes = [ {:name=>"flour", :amount=>"1 cup"}, {:name=>"sugar", :amount=>"2 cups"}]
recipe.ingredients.size # -> 2; ingredients contains expected instances
Однако я не могу создавать новые графы объектов, используя хэш параметров , как показано в документации :
params = { :name => "test", :ingredients_attributes => [ {:name=>"flour", :amount=>"1 cup"}, {:name=>"sugar", :amount=>"2 cups"}] }
recipe = Recipe.new(params)
recipe.name # -> "test"
recipe.ingredients # -> []; no ingredient instances in the collection
Я что-то здесь не так делаю? Или есть проблема в бета-версии Rails 3?
Обновление
Это ошибка, вызванная attr_accessible :name
в рецепте. Это не специфично для Rails3.