i added a column to my DB using
rails g migration AddAttrToTablename attr:string
rake db:migrate
I didnt change the model file. Should i?
Now when i create a new record to the table assigning values to existing
attrs and newly added attribute i get this error “Can’t mass-assign
protected attributes: attr”
You probably need to add the new field to the attr_accessible list in
the model.rb file so you can do such things as update_attributes(
params[…]) or new( params[…] )
Hi Colin,
I think u r using rails 3.2.x where mass assignment is protected for
saving the record into the db
you need to write this piece of code in model
attr_accessible : field/column name
With Thanks & Regards,
Santosh Mohanty Software Developer, Railsfactory(Ruby on Rails Solution)* *
9445808957 www.railsfactory.org
Indeed, the right way would have been to use the generator to add a
field
to your model. This would have update your model AND created a DB
migration.
In your case, you changed the DB, but not the Ruby object that
corresponds
to it. So indeed the new field does not exist in your object, thus the
error.
It is best not to top post as doing this makes it more difficult to
follow
the thread, and also makes it easier to reply to the wrong person.
cyber c
was the original poster. Best to insert your reply at appropriate
points
in the previous message.
I think u r using rails 3.2.x where mass assignment is protected for
saving the record into the db
you need to write this piece of code in model
attr_accessible : field/column name
Also if you had posted this after my comment which said
“You probably need to add the new field to the attr_accessible list in
the model.rb file so you can do such things as update_attributes(
params[…]) or new( params[…] )”
then you would have noticed that I had already answered the question.
Indeed, the right way would have been to use the generator to add a field to
your model. This would have update your model AND created a DB migration.
In your case, you changed the DB, but not the Ruby object that corresponds
to it. So indeed the new field does not exist in your object, thus the
error.
What generator command would have added attr_accessible for the new
field in the model.rb?