form_tag
form_tag(url_for_options = {}, options = {}, *parameters_for_url)
public
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".
form_tag with named route and html class
<% form_tag position_user_card_path(@user, card), :method => :put, :class => ‘position-form’ do %>
How to submit current url
For example to change some kind of param on select change…
<%= form_tag({}, {:method => :get}) do %> <%= select_tag :new_locale, options_for_select(I18n.available_locales, I18n.locale), :onchange => "this.form.submit();" %> <% end %>
To add an ID to the form
Found this the hard way, but to add an ID to the form generated by form_tag, you must explicitly make hashes.
Add ID
<%= form_tag({:action => 'create'}, {:id => 'anID'}) %>
Erb tags
The <% -%> is not being used since Rails 3.
The example above should be changed to:
<%= form_tag('/posts') do %> <div><%= submit_tag 'Save' %></div> <% end %>