Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails 4: Insert Attribute Into Params

In Rails 3, it was possible to insert an attribute into params like so:

params[:post][:user_id] = current_user.id 

I'm attempting to do something similar in Rails 4, but having no luck:

post_params[:user_id] = current_user.id  . . . .   private    def post_params     params.require(:post).permit(:user_id)   end 

Rails is ignoring this insertion. It doesn't throw any errors, it just quietly fails.

like image 330
nullnullnull Avatar asked May 13 '13 20:05

nullnullnull


1 Answers

Found the answer here. Rather than inserting the attribute from within the controller action, you can insert it into the params definition with a merge. To expand upon my previous example:

private    def post_params     params.require(:post).permit(:some_attribute).merge(user_id: current_user.id)   end 
like image 70
nullnullnull Avatar answered Sep 23 '22 14:09

nullnullnull