Module: ActionView::Helpers::FormTagHelper
- Defined in:
- lib/action_view/helpers/form_tag_helper.rb
Overview
Provides a number of methods for creating form tags that doesn’t rely on conventions with an object assigned to the template like FormHelper does. With the FormTagHelper, you provide the names and values yourself.
NOTE: The html options disabled, readonly, and multiple can all be treated as booleans. So specifying :disabled => true
will give disabled="disabled"
.
Instance Method Summary collapse
-
#check_box_tag(name, value = "1", checked = false, options = {}) ⇒ Object
Creates a check box.
-
#end_form_tag ⇒ Object
Outputs “</form>”.
-
#file_field_tag(name, options = {}) ⇒ Object
Creates a file upload field.
-
#form_tag(url_for_options = {}, options = {}, *parameters_for_url, &proc) ⇒ Object
(also: #start_form_tag)
Starts a form tag that points the action to an url configured with
url_for_options
just like ActionController::Base#url_for. -
#hidden_field_tag(name, value = nil, options = {}) ⇒ Object
Creates a hidden field.
-
#image_submit_tag(source, options = {}) ⇒ Object
Displays an image which when clicked will submit the form.
-
#password_field_tag(name = "password", value = nil, options = {}) ⇒ Object
Creates a password field.
-
#radio_button_tag(name, value, checked = false, options = {}) ⇒ Object
Creates a radio button.
-
#select_tag(name, option_tags = nil, options = {}) ⇒ Object
Creates a dropdown selection box, or if the
:multiple
option is set to true, a multiple choice selection box. -
#submit_tag(value = "Save changes", options = {}) ⇒ Object
Creates a submit button with the text
value
as the caption. -
#text_area_tag(name, content = nil, options = {}) ⇒ Object
Creates a text input area.
-
#text_field_tag(name, value = nil, options = {}) ⇒ Object
Creates a standard text field.
Instance Method Details
#check_box_tag(name, value = "1", checked = false, options = {}) ⇒ Object
Creates a check box.
105 106 107 108 109 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 105 def check_box_tag(name, value = "1", checked = false, = {}) = { "type" => "checkbox", "name" => name, "id" => name, "value" => value }.update(.stringify_keys) ["checked"] = "checked" if checked tag :input, end |
#end_form_tag ⇒ Object
Outputs “</form>”
28 29 30 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 28 def end_form_tag "</form>" end |
#file_field_tag(name, options = {}) ⇒ Object
Creates a file upload field.
If you are using file uploads then you will also need to set the multipart option for the form:
<%= form_tag { :action => "post" }, { :multipart => true } %>
<label for="file">File to Upload</label> <%= file_field_tag "file" %>
<%= submit_tag %>
<%= end_form_tag %>
The specified URL will then be passed a File object containing the selected file, or if the field was left blank, a StringIO object.
77 78 79 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 77 def file_field_tag(name, = {}) text_field_tag(name, nil, .update("type" => "file")) end |
#form_tag(url_for_options = {}, options = {}, *parameters_for_url, &proc) ⇒ Object Also known as: start_form_tag
Starts a form tag that points the action to an url configured with url_for_options
just like ActionController::Base#url_for. The method for the form defaults to POST.
Options:
-
:multipart
- If set to true, the enctype is set to “multipart/form-data”. -
:method
- The method to use when submitting the form, usually either “get” or “post”.
18 19 20 21 22 23 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 18 def form_tag( = {}, = {}, *parameters_for_url, &proc) = { "method" => "post" }.merge(.stringify_keys) ["enctype"] = "multipart/form-data" if .delete("multipart") ["action"] = url_for(, *parameters_for_url) tag :form, , true end |
#hidden_field_tag(name, value = nil, options = {}) ⇒ Object
Creates a hidden field.
Takes the same options as text_field_tag
63 64 65 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 63 def hidden_field_tag(name, value = nil, = {}) text_field_tag(name, value, .stringify_keys.update("type" => "hidden")) end |
#image_submit_tag(source, options = {}) ⇒ Object
Displays an image which when clicked will submit the form.
source
is passed to AssetTagHelper#image_path
133 134 135 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 133 def image_submit_tag(source, = {}) tag :input, { "type" => "image", "src" => image_path(source) }.update(.stringify_keys) end |
#password_field_tag(name = "password", value = nil, options = {}) ⇒ Object
Creates a password field.
Takes the same options as text_field_tag
84 85 86 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 84 def password_field_tag(name = "password", value = nil, = {}) text_field_tag(name, value, .update("type" => "password")) end |
#radio_button_tag(name, value, checked = false, options = {}) ⇒ Object
Creates a radio button.
112 113 114 115 116 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 112 def (name, value, checked = false, = {}) = { "type" => "radio", "name" => name, "id" => name, "value" => value }.update(.stringify_keys) ["checked"] = "checked" if checked tag :input, end |
#select_tag(name, option_tags = nil, options = {}) ⇒ Object
Creates a dropdown selection box, or if the :multiple
option is set to true, a multiple choice selection box.
Helpers::FormOptions can be used to create common select boxes such as countries, time zones, or associated records.
option_tags
is a string containing the option tags for the select box:
# Outputs <select id="people" name="people"><option>David</option></select>
select_tag "people", "<option>David</option>"
Options:
-
:multiple
- If set to true the selection will allow multiple choices.
44 45 46 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 44 def select_tag(name, = nil, = {}) content_tag :select, , { "name" => name, "id" => name }.update(.stringify_keys) end |
#submit_tag(value = "Save changes", options = {}) ⇒ Object
Creates a submit button with the text value
as the caption. If options contains a pair with the key of “disable_with”, then the value will be used to rename a disabled version of the submit button.
120 121 122 123 124 125 126 127 128 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 120 def submit_tag(value = "Save changes", = {}) .stringify_keys! if disable_with = .delete("disable_with") ["onclick"] = "this.disabled=true;this.value='#{disable_with}';this.form.submit();#{["onclick"]}" end tag :input, { "type" => "submit", "name" => "commit", "value" => value }.update(.stringify_keys) end |
#text_area_tag(name, content = nil, options = {}) ⇒ Object
Creates a text input area.
Options:
-
:size
- A string specifying the dimensions of the textarea.# Outputs <textarea name="body" id="body" cols="25" rows="10"></textarea> <%= text_area_tag "body", nil, :size => "25x10" %>
94 95 96 97 98 99 100 101 102 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 94 def text_area_tag(name, content = nil, = {}) .stringify_keys! if size = .delete("size") ["cols"], ["rows"] = size.split("x") end content_tag :textarea, content, { "name" => name, "id" => name }.update(.stringify_keys) end |
#text_field_tag(name, value = nil, options = {}) ⇒ Object
Creates a standard text field.
Options:
-
:disabled
- If set to true, the user will not be able to use this input. -
:size
- The number of visible characters that will fit in the input. -
:maxlength
- The maximum number of characters that the browser will allow the user to enter.
A hash of standard HTML options for the tag.
56 57 58 |
# File 'lib/action_view/helpers/form_tag_helper.rb', line 56 def text_field_tag(name, value = nil, = {}) tag :input, { "type" => "text", "name" => name, "id" => name, "value" => value }.update(.stringify_keys) end |