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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With