Both take blocks now. When using form_for, supply the block with a
symbol denoting the corresponding object, then you don't have to
restate it everyplace:
<% form_for :people do |f| %>
<p>
name
<%= f.text_field :name %>
</p>
<p>
address
<%= f.text_field :address %>
</p>
<% end %>
In particular, this is great when there are multiple forms on the
same page. You specify:
Ok, I have rewritten my form code to follow this but its not solving my core problem.
Maybe its just me but rails seems a bit of a mess when it comes to form code.
I have one app that runs against 1.1.6. I have a form with the following code:
<%= form.file_field(“jar_file”) %>
In my model I have:
def jar_file=(jar_field)
#stuff
end
This works fine. Howevern in a new app running on rails 1.2.1 I have the following code:
<%= f.password_field(“password”) %>
with this in my model:
def password=(pass)
#stuff
end
This fails with the error:
undefined method `password' for #<User:0x377e560>
Is there a 'correct' approach for this. Rails seems to allow me to set up forms in
a number of ways but I can find nothing that says this is the right way to do it.
Keith