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"
.
- C
- E
- F
- H
- I
- P
- R
- S
- T
Creates a check box.
Source: show
# File rails/actionpack/lib/action_view/helpers/form_tag_helper.rb, line 142 def check_box_tag(name, value = "1", checked = false, options = {}) html_options = { "type" => "checkbox", "name" => name, "id" => name, "value" => value }.update(options.stringify_keys) html_options["checked"] = "checked" if checked tag :input, html_options end
Outputs “</form>”
Source: show
# File rails/actionpack/lib/action_view/helpers/form_tag_helper.rb, line 63 def end_form_tag "</form>" end
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.
Source: show
# File rails/actionpack/lib/action_view/helpers/form_tag_helper.rb, line 114 def file_field_tag(name, options = {}) text_field_tag(name, nil, options.update("type" => "file")) end
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.
Examples:
-
form_tag('/posts') => <form action="/posts" method="post">
-
form_tag('/posts/1', :method => :put) => <form action="/posts/1" method="put">
-
form_tag('/upload', :multipart => true) => <form action="/upload" method="post" enctype="multipart/form-data">
ERb example:
<% form_tag '/posts' do -%> <div><%= submit_tag 'Save' %></div> <% end -%>
Will output:
<form action="/posts" method="post"><div><input type="submit" name="submit" value="Save" /></div></form>
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".If "put", "delete", or another verb is used, a hidden input with name _method is added to simulate the verb over post.
Source: show
# File rails/actionpack/lib/action_view/helpers/form_tag_helper.rb, line 33 def form_tag(url_for_options = {}, options = {}, *parameters_for_url, &block) html_options = options.stringify_keys html_options["enctype"] = "multipart/form-data" if html_options.delete("multipart") html_options["action"] = url_for(url_for_options, *parameters_for_url) method_tag = "" case method = html_options.delete("method").to_s when %r^get$/ # must be case-insentive, but can't use downcase as might be nil html_options["method"] = "get" when %r^post$/, "", nil html_options["method"] = "post" else html_options["method"] = "post" method_tag = content_tag(:div, tag(:input, :type => "hidden", :name => "_method", :value => method), :style => 'margin:0;padding:0') end if block_given? content = capture(&block) concat(tag(:form, html_options, true) + method_tag, block.binding) concat(content, block.binding) concat("</form>", block.binding) else tag(:form, html_options, true) + method_tag end end
Creates a hidden field.
Takes the same options as #text_field_tag
Source:
Displays an image which when clicked will submit the form.
source
is passed to ActionView::Helpers::AssetTagHelper#image_path
Source: show
# File rails/actionpack/lib/action_view/helpers/form_tag_helper.rb, line 171 def image_submit_tag(source, options = {}) tag :input, { "type" => "image", "src" => image_path(source) }.update(options.stringify_keys) end
Creates a password field.
Takes the same options as #text_field_tag
Source: show
# File rails/actionpack/lib/action_view/helpers/form_tag_helper.rb, line 121 def password_field_tag(name = "password", value = nil, options = {}) text_field_tag(name, value, options.update("type" => "password")) end
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.
Source: show
# File rails/actionpack/lib/action_view/helpers/form_tag_helper.rb, line 81 def select_tag(name, option_tags = nil, options = {}) content_tag :select, option_tags, { "name" => name, "id" => name }.update(options.stringify_keys) end
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.
Source: show
# File rails/actionpack/lib/action_view/helpers/form_tag_helper.rb, line 158 def submit_tag(value = "Save changes", options = {}) options.stringify_keys! if disable_with = options.delete("disable_with") options["onclick"] = "this.disabled=true;this.value='#{disable_with}';this.form.submit();#{options["onclick"]}" end tag :input, { "type" => "submit", "name" => "commit", "value" => value }.update(options.stringify_keys) end
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" %>
Source: show
# File rails/actionpack/lib/action_view/helpers/form_tag_helper.rb, line 131 def text_area_tag(name, content = nil, options = {}) options.stringify_keys! if size = options.delete("size") options["cols"], options["rows"] = size.split("x") end content_tag :textarea, content, { "name" => name, "id" => name }.update(options.stringify_keys) end
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.
Source: show
# File rails/actionpack/lib/action_view/helpers/form_tag_helper.rb, line 93 def text_field_tag(name, value = nil, options = {}) tag :input, { "type" => "text", "name" => name, "id" => name, "value" => value }.update(options.stringify_keys) end