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.

Reply via email to