Module: Formtastic::Helpers::FormHelper
- Included in:
- SemanticFormHelper
- Defined in:
- lib/formtastic/helpers/form_helper.rb
Overview
FormHelper provides a handful of wrappers around Rails' built-in form helpers methods to set
the :builder option to Formtastic::FormBuilder and apply some class names to the <form>
tag.
The following methods are wrapped:
semantic_form_fortoform_forsemantic_fields_fortofields_forsemantic_remote_form_forandsemantic_form_remote_fortoremote_form_for
The following two examples are effectively equivalent:
<%= form_for(@post, :builder => Formtastic::FormBuilder, :class => 'formtastic post') do |f| %>
#...
<% end %>
<%= semantic_form_for(@post) do |f| %>
#...
<% end %>
This simple wrapping means that all arguments, options and variations supported by Rails' own helpers are also supported by Formtastic.
Since Formtastic::FormBuilder subclasses Rails' own FormBuilder, you have access to all
of Rails' built-in form helper methods such as text_field, check_box, radio_button,
etc in addition to all of Formtastic's additional helpers like inputs,
input, buttons, etc:
<%= semantic_form_for(@post) do |f| %>
<!-- Formtastic -->
<%= f.input :title %>
<!-- Rails -->
<li class='something-custom'>
<%= f.label :title %>
<%= f.text_field :title %>
<p class='hints'>...</p>
</li>
<% end %>
Formtastic is a superset of Rails' FormBuilder. It deliberately avoids overriding or modifying the behavior of Rails' own form helpers so that you can use Formtastic helpers when suited, and fall back to regular Rails helpers, ERB and HTML when needed. In other words, you're never fully committed to The Formtastic Way.
Constant Summary collapse
- @@builder =
Allows the
:builderoption onform_foretc to be changed to your own which subclassesFormtastic::FormBuilder. Change this fromconfig/initializers/formtastic.rb. Formtastic::FormBuilder
- @@default_form_class =
Allows the default class we add to all
<form>tags to be changed fromformtastictowhatever. Change this fromconfig/initializers/formtastic.rb. 'formtastic'
Instance Method Summary collapse
-
#semantic_fields_for(record_or_name_or_array, *args, &proc) ⇒ Object
Wrapper around Rails' own
fields_forhelper to set the:builderoption toFormtastic::FormBuilder. -
#semantic_form_for(record_or_name_or_array, *args, &proc) ⇒ Object
Wrapper around Rails' own
form_forhelper to set the:builderoption toFormtastic::FormBuilderand to set some class names on the<form>tag such asformtasticand the downcased and underscored model name (egpost). - #semantic_remote_form_for_wrapper(record_or_name_or_array, *args, &proc) ⇒ Object (also: #semantic_remote_form_for)
Instance Method Details
#semantic_fields_for(record_or_name_or_array, *args, &proc) ⇒ Object
Wrapper around Rails' own fields_for helper to set the :builder option to
Formtastic::FormBuilder.
150 151 152 |
# File 'lib/formtastic/helpers/form_helper.rb', line 150 def semantic_fields_for(record_or_name_or_array, *args, &proc) form_helper_wrapper(:fields_for, record_or_name_or_array, *args, &proc) end |
#semantic_form_for(record_or_name_or_array, *args, &proc) ⇒ Object
Wrapper around Rails' own form_for helper to set the :builder option to
Formtastic::FormBuilder and to set some class names on the <form> tag such as
formtastic and the downcased and underscored model name (eg post).
See Rails' form_for for full documentation of all supported arguments and options.
Since Formtastic::FormBuilder subclasses Rails' own FormBuilder, you have access to all
of Rails' built-in form helper methods such as text_field, check_box, radio_button,
etc in addition to all of Formtastic's additional helpers like inputs,
input, buttons, etc.
Most of the examples below have been adapted from the examples found in the Rails form_for
documentation.
142 143 144 |
# File 'lib/formtastic/helpers/form_helper.rb', line 142 def semantic_form_for(record_or_name_or_array, *args, &proc) form_helper_wrapper(:form_for, record_or_name_or_array, *args, &proc) end |
#semantic_remote_form_for_wrapper(record_or_name_or_array, *args, &proc) ⇒ Object Also known as: semantic_remote_form_for
164 165 166 167 168 169 170 171 172 |
# File 'lib/formtastic/helpers/form_helper.rb', line 164 def semantic_remote_form_for_wrapper(record_or_name_or_array, *args, &proc) = args. if respond_to? :remote_form_for semantic_remote_form_for_real(record_or_name_or_array, *(args << ), &proc) else [:remote] = true semantic_form_for(record_or_name_or_array, *(args << ), &proc) end end |