I know this is something that should be almost ridiculously easy (I am
new with RoR, so please be gentle). I am trying to create a comment on
a simple forum posting, but am having problems setting up my form
properly. I am using Rails 2.0.2, but everything I find online seems to
use the now-deprecated 'start_form_tag' and I'm not having much luck
converting it to 'form_for'.
Sorry about that...reading back through it I see that I never actually
said what the problem was. I have modified it per your instructions,
but the end result is still the same as the error has something to do
with the hash that is getting passed (I think).
where YourController is... well, the name of your controller. End it
with:
<%= end_form_tag -%>
using this method, you don't need to use the <%= f.text_area %> thing,
but instead just use regular HTML textboxes. If you specify your HTML
textbox name to be 'comment', you can access it in your controller by
using params[:comment].
However, I'm pretty sure you still have to use the ruby submit button:
<%= submit_tag 'save' -%>
Give it a whirl, hopefully it works for you. I'm pretty new to RoR too,
but this worked for me.
Hey guys, that got me on the right track! I used the form_tag, but had
to remove the '=' and also add a 'do' for it to work. I also just used
a HTML textarea element named 'comment'. That got the view corrected,
but I then started receiving an error saying:
undefined method 'stringify keys!' for "text added for comment
example":String
To remedy that, I updated the controller so that the field to which I
was inserting (body) was explicitly named like this:
This suggests your Comment model's attribute is "body". It seems
unlikely that you have a special page just to create a comment, so I'm
going to assume that this form is on the Post show view. What you
probably need then is something like this:
That was an excellent explanation. This is the way I pictured it
working, just didn't know how to get there from where I was at. It's
starting to make sense!