Rick8
(Rick)
February 21, 2007, 3:29am
1
The form_for api docs have this example:
<% form_for :person, @person , :url => { :action => "update" } do |f| %>
Can someone explain the function of :person and @person ? I guess that @person was set in the controller.
But then what is :person? Why do I need both?
The form_for api docs have this example:
<% form_for :person, @person , :url => { :action => "update" } do |f| %>
Can someone explain the function of :person and @person ? I guess that @person was set in the controller.
But then what is :person? Why do I need both?
Try it and then view the source to see the result... using this example:
<% form_for :person, @person , :url => { :action => "update" } do |f| %>
First name: <%= f.text_field :first_name %>
Last name : <%= f.text_field :last_name %>
Biography : <%= f.text_area :biography %>
Admin? : <%= f.check_box :admin %>
<% end %>
You'd end up with form names of:
person[first_name]
person[last_name]
person[biography]
person[admin]
That takes care of :person. @person is what is used to populate those fields with default values....
-philip
RSL
(RSL)
February 25, 2007, 4:15pm
3
Uh… Weird. I’ve been using
form_for :model_name, :url => {:action => :whatever} do |f|
end
and it works fine. I don’t know how/why I started doing it this way but it does work. Does Edge Rails use form_for differently? Is @person designed so you could use a different model there? I’m genuinely puzzled by this.
RSL