Can't mass-assign protected attributes:

Hi,

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"

Any1 understand whats happening here?

Hi,

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"

Any1 understand whats happening here?

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[...] )

Colin

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)* * :phone: 9445808957

www.railsfactory.org

Contact me: Google Talk santosh@railsfactory.org Skype santosh.railsfactory

Want a signature like mine? Click here.

Hi Colin,

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.

With Thanks & Regards, Santosh Mohanty Software Developer, Railsfactory(Ruby on Rails Solution)* * :phone: 9445808957

www.railsfactory.org

Contact me: santosh@railsfactory.org santosh.railsfactory

Want a signature like mine? Click here.

Why would I want a signature like yours?

Colin

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?

Colin

hum, you’re right, I mixed things up in my head. I indeed don’t know of any :frowning: