Most of your questions will be answered by simply changing the way you are saving comments. You need the review's id in a hidden field so that you can add the comment to the correct review, but try this:
Change your comment fields to be named "comment[title]" and "comment[comment]" so that you can just pass params[:comment]. The id and type will be saved automatically. Since @new_comment will contain the new comment, there is no need for the extra methods. Let me know if you have more questions.
BTW, one good way to get an idea of the methods that any relationship
add to a model is to use script/console and look at the methods of an
instance of said model. For your review example, try this:
`r = Review.find(:first)
puts r.methods.sort.join("\n")
puts r.methods.grep(/comment/).sort.join("\n")`
The first call to methods will list all of the public methods available
to an instance of your Review class. The second will just show any
methods that have “comment” in their name. Then you can simply play
around with them in console or search a given api for more info on a
method. Hope I was of some help.
One other thing I noticed. You should just use form_tag instead of
form_for :review. form_for is meant to create a form around a specific
object, and since your comment is not a review, form_tag would make
more sense.
Although, you could also use form_for :comment. In that case, you can
just name your fields :title, and :comment. Either way is fine. Note
that I added id’s to the tags because the default is to use the name as
the id and []'s are not allowed in id’s, only alphanumerics and _'s.
Ahh, don’t be so hard on yourself, everyone has been where you are. I
enjoy helping on this list and so do many others. This list truly has a
good group of people. Have fun and let me know if I can help with
anything else.