Module: Formtastic::SemanticFormHelper

Defined in:
lib/formtastic.rb

Overview

Wrappers around form_for (etc) with :builder => SemanticFormBuilder.

  • semantic_form_for(@post)

  • semantic_fields_for(@post)

  • semantic_form_remote_for(@post)

  • semantic_remote_form_for(@post)

Each of which are the equivalent of:

  • form_for(@post, :builder => Formtastic::SemanticFormBuilder))

  • fields_for(@post, :builder => Formtastic::SemanticFormBuilder))

  • form_remote_for(@post, :builder => Formtastic::SemanticFormBuilder))

  • remote_form_for(@post, :builder => Formtastic::SemanticFormBuilder))

Example Usage:

<% semantic_form_for @post do |f| %>
  <%= f.input :title %>
  <%= f.input :body %>
<% end %>

The above examples use a resource-oriented style of form_for() helper where only the @post object is given as an argument, but the generic style is also supported, as are forms with inline objects (Post.new) rather than objects with instance variables (@post):

<% semantic_form_for :post, @post, :url => posts_path do |f| %>
  ...
<% end %>

<% semantic_form_for :post, Post.new, :url => posts_path do |f| %>
  ...
<% end %>

Constant Summary collapse

FIELD_ERROR_PROC =

Override the default ActiveRecordHelper behaviour of wrapping the input. This gets taken care of semantically by adding an error class to the LI tag containing the input.

proc do |html_tag, instance_tag|
  html_tag
end
@@builder =
::Formtastic::SemanticFormBuilder
@@default_form_class =
'formtastic'

Instance Method Summary collapse

Instance Method Details

#semantic_remote_form_for_wrapper(record_or_name_or_array, *args, &proc) ⇒ Object Also known as: semantic_remote_form_for


1899
1900
1901
1902
1903
1904
1905
1906
1907
# File 'lib/formtastic.rb', line 1899

def semantic_remote_form_for_wrapper(record_or_name_or_array, *args, &proc)
  options = args.extract_options!
  if self.respond_to? :remote_form_for
    semantic_remote_form_for_real(record_or_name_or_array, *(args << options), &proc)
  else
    options[:remote] = true
    semantic_form_for(record_or_name_or_array, *(args << options), &proc)
  end
end

#with_custom_field_error_proc(&block) ⇒ Object


1891
1892
1893
1894
1895
1896
1897
# File 'lib/formtastic.rb', line 1891

def with_custom_field_error_proc(&block)
  default_field_error_proc = ::ActionView::Base.field_error_proc
  ::ActionView::Base.field_error_proc = FIELD_ERROR_PROC
  yield
ensure
  ::ActionView::Base.field_error_proc = default_field_error_proc
end