> ActionController::ParameterMissing in CommentsController#new
> param is missing or the value is empty: comment
> class CommentsController < ApplicationController
> def comment_params
> params.require(:comment).permit(:comment, :commentable_id, :commentable_type)
What does the form look like that sends to this controller?
> 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 rubyonrails-ta...@googlegroups.com.
> To post to this group, send email to rubyonra...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/a7beac71-d952-4b4d-ae2c-15f3a0f444c3%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
<%= link_to 'Comment', new_comment_path(commentable_type: 'post', commentable_id: commentable.id) %>
Since the form never rendered I'm not sure if I should include it here
Aha. I see what the problem could be. Your new method is trying to load a set of params, which is not the way this is usually done. Traditionally, the #new method is a GET request, which loads a generic form built around an empty new object. Since you are trying to set up the relationship with the commentable polymorphic object, maybe you should use a nested route to send that to the controller, or have a separate strong parameters accessor just for this form. You're sending the parameters as bare querystring options in the link helper, not nesting them into the comment object, which is why your accessor is failing you. If you changed the link to be
new_comment_path( 'comment[commentable_type]': 'post', 'comment[commentable_id]: commendable.id)
...then your existing accessor will work, but that's a lot of typing when you could probably do this a lot easier with nested routes.