| In: |
vendor/actionpack/lib/action_view/helpers/form_helper.rb
|
Provides a set of methods for working with forms and especially forms related to objects assigned to the template. The following is an example of a complete form for a person object that works for both creates and updates built with all the form helpers. The @person object was assigned by an action on the controller:
<form action="save_person" method="post">
Name:
<%= text_field "person", "name", "size" => 20 %>
Password:
<%= password_field "person", "password", "maxsize" => 20 %>
Single?:
<%= check_box "person", "single" %>
Description:
<%= text_area "person", "description", "cols" => 20 %>
<input type="submit" value="Save">
</form>
…is compiled to:
<form action="save_person" method="post">
Name:
<input type="text" id="person_name" name="person[name]"
size="20" value="<%= @person.name %>" />
Password:
<input type="password" id="person_password" name="person[password]"
size="20" maxsize="20" value="<%= @person.password %>" />
Single?:
<input type="checkbox" id="person_single" name="person[single] value="1" />
Description:
<textarea cols="20" rows="40" id="person_description" name="person[description]">
<%= @person.description %>
</textarea>
<input type="submit" value="Save">
</form>
There’s also methods for helping to build form tags in FormOptionsHelper.html, DateHelper.html, and ActiveRecordHelper.html
Returns an input tag of the "text" type tailored for accessing a specified attribute (identified by method) on an object assigned to the template (identified by object). Additional options on the input tag can be passed as a hash with options.
Examples (call, result):
text_field("post", "title", "size" => 20)
<input type="text" id="post_title" name="post[title]" size="20" value="#{@post.title}" />
# File vendor/actionpack/lib/action_view/helpers/form_helper.rb, line 58
58: def text_field(object, method, options = {})
59: InstanceTag.new(object, method, self).to_input_field_tag("text", options)
60: end
Works just like text_field, but returns a input tag of the "password" type instead.
# File vendor/actionpack/lib/action_view/helpers/form_helper.rb, line 63
63: def password_field(object, method, options = {})
64: InstanceTag.new(object, method, self).to_input_field_tag("password", options)
65: end
Works just like text_field, but returns a input tag of the "hidden" type instead.
# File vendor/actionpack/lib/action_view/helpers/form_helper.rb, line 68
68: def hidden_field(object, method, options = {})
69: InstanceTag.new(object, method, self).to_input_field_tag("hidden", options)
70: end
Returns a textarea opening and closing tag set tailored for accessing a specified attribute (identified by method) on an object assigned to the template (identified by object). Additional options on the input tag can be passed as a hash with options.
Example (call, result):
text_area("post", "body", "cols" => 20, "rows" => 40)
<textarea cols="20" rows="40" id="post_body" name="post[body]">
#{@post.body}
</textarea>
# File vendor/actionpack/lib/action_view/helpers/form_helper.rb, line 81
81: def text_area(object, method, options = {})
82: InstanceTag.new(object, method, self).to_text_area_tag(options)
83: end
Returns a checkbox tag tailored for accessing a specified attribute (identified by method) on an object assigned to the template (identified by object). It’s intended that method returns an integer and if that integer is above zero, then the checkbox is checked. Additional options on the input tag can be passed as a hash with options. The value defaults to 1, which is convenient for boolean values.
Example (call, result). Imagine that @post.validated? returns 1:
check_box("post", "validated")
<input type="checkbox" id="post_validate" name="post[validated] value="1" checked="checked" />
# File vendor/actionpack/lib/action_view/helpers/form_helper.rb, line 93
93: def check_box(object, method, options = {}, value = "1")
94: InstanceTag.new(object, method, self).to_check_box_tag(options, value)
95: end