Reputation: 24558
I have a rails 3.2.3, I have a form with two nested models, when I try to submit the form, I get this error:
ActiveModel::MassAssignmentSecurity::Error in ExperimentsController#create
Can't mass-assign protected attributes: descriptions_attributes, circuits_attributes
Here is my models:
class Experiment < ActiveRecord::Base
attr_accessible :title, :intro_text
has_many :circuits, :dependent => :destroy
has_many :descriptions, :dependent => :destroy
accepts_nested_attributes_for :descriptions, :reject_if => lambda { |a| a[:data].blank? }, :allow_destroy => true
accepts_nested_attributes_for :circuits, :reject_if => lambda { |a| a[:data].blank? }, :allow_destroy => true
end
class Circuit < ActiveRecord::Base
attr_accessible :data, :title
belongs_to :experiment
end
class Description < ActiveRecord::Base
attr_accessible :data, :title
belongs_to :experiment
end
I can add attr_accessible
for a field, but, what about the nested models ?
Upvotes: 0
Views: 1329
Reputation: 2941
Try adding:
class Experiment < ActiveRecord::Base
attr_accessible :title, :intro_text, :descriptions_attributes, :circuits_attributes
[...]
In you experiment model.
Upvotes: 3