> On Feb 16, 2016, at 7:47 AM, Szabolcs Toth <li...@ruby-forum.com> wrote:
> 
> Walter Davis wrote in post #1181415:
>>>   @comment = Comment.new(comment_params)
>>>   @comment.post_id = params[:id]
>>> 
>>> But it doesn't work, what did I miss? Thank you!
>>> 
>> 
>> If you're sending this to the comments controller, then set the post_id
>> attribute in that form. id always refers to the object of the form (in
>> this case the comment) rather than the parent.
>> 
>> Walter
> 
> Thanks, last night I tried this in the _form partial:
> <%= f.text_field :post_id, value: params[:id] %>
> 
> This way it is work, but I wouldn't like to show this to user, I'd like 
> to do it automatically. How can I do that?

It's a matter of personal taste *where* you stash this attribute, but you will 
need to do this no matter how you handle the form submission. The comments 
controller has no particular notion of which post it is commenting on 
otherwise. 

* You can put the post_id in the querystring when you link to the comment form, 
and capture it with a hidden variable in your new comment form.
* You can use nested routes to do the same thing in the body of the URL: 
posts/1234/comments/new
* I suppose you could stash it in a session cookie if you really object to the 
visual noise
* You could try using a nested form, but that gets hairy quite quickly if you 
have a public comment form (displayed on the posts/show route) and private edit 
both going through the posts/update route -- where do you redirect after, and 
where do you go on error during update?

The simplest possible thing, from way back to the 15-minute blog demo (whoops!) 
is to carry the post_id into the comments/new form in a querystring. It's not 
shameful or anything.

Walter

-- 
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-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/CDCF0373-7521-4CE8-91D7-A43CB117BF6E%40wdstudio.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to