On Tuesday, January 26, 2016 at 8:21:21 PM UTC, Ruby-Forum.com User wrote: > > Hi everyone. I'm new in ruby and recently faced with mass assignment > problem. Below I attached a sample code similar to mine. Could you > explain me what should I use in require method??? is it a name of > model(person) or a variable name which I assign result(person = > current_account.people.find(params[:id])) or maybe it should be an > object attribute like @person??? Because I used various types but always > have the same error. >
it is the name of a key in the params hash (check your development.log to see what params you are receiving). In your example below you are checking that the params hash contains a key "person" (an error will be raised if not) and that value is a hash where the keys name and age are permitted. If you use the standard rails methods for building your form (i.e. form_for and f.text_field etc rather than text_field_tag) then rails uses the name of the model class so the argument to require will also be the name of the class > The second question - is it necessary to give the same name for private > method def person_params as the name of (person_params) for db update? > not quite sure what you mean by that. Fred > class PeopleController < ActionController::Base > > def update > person = current_account.people.find(params[:id]) > person.update_attributes!(person_params) > redirect_to person > end > > private > > def person_params > params.require(:person).permit(:name, :age) > end > end > > -- > Posted via http://www.ruby-forum.com/. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/103e8c11-07a4-481a-a7f7-aea9ff6d890c%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

