Class: Formtastic::Inputs::BooleanInput

Inherits:
Object
  • Object
show all
Includes:
Base
Defined in:
lib/formtastic/inputs/boolean_input.rb

Overview

Boolean inputs are used to render an input for a single checkbox, typically for attributes with a simple yes/no or true/false value. Boolean inputs are used by default for boolean database columns.

Examples:

Full form context and markup

<%= semantic_form_for @post %>
  <%= f.inputs do %>
    <%= f.input :published, :as => :boolean %>
  <% end %>
<% end %>

<form...>
  <fieldset>
    <ol>
      <li class="boolean" id="post_published_input">
        <input type="hidden" name="post[published]" id="post_published" value="0">
        <label for="post_published">
          <input type="checkbox" name="post[published]" id="post_published" value="1">
          Published?
        </label>
      </li>
    </ol>
  </fieldset>
</form>

Set the values for the checked and unchecked states

<%= f.input :published, :checked_value => "yes", :unchecked_value => "no" %>

See Also:

  • InputsHelper#input for full documetation of all possible options.

Instance Attribute Summary

Attributes included from Base

#builder, #method, #object, #object_name, #options, #template

Instance Method Summary collapse

Methods included from Base

#initialize

Methods included from Formtastic::Inputs::Base::Wrapping

#input_wrapping, #wrapper_dom_id, #wrapper_html_options

Methods included from Formtastic::Inputs::Base::Labelling

#label_from_options, #label_html, #label_text, #localized_label, #render_label?, #requirement_text, #requirement_text_or_proc

Methods included from Formtastic::Inputs::Base::Associations

#association, #association_primary_key, #belongs_to?, #reflection

Methods included from Formtastic::Inputs::Base::Fileish

#file?

Methods included from Formtastic::Inputs::Base::Validations

#column_limit, #limit, #not_required_through_negated_validation!, #not_required_through_negated_validation?, #optional?, #required?, #validation_integer_only?, #validation_limit, #validation_max, #validation_min, #validations, #validations?, #validator_relevant?

Methods included from Formtastic::Inputs::Base::Naming

#as, #attributized_method_name, #humanized_method_name, #input_name, #sanitized_method_name, #sanitized_object_name

Methods included from Formtastic::Inputs::Base::Hints

#hint?, #hint_html, #hint_text, #hint_text_from_options

Methods included from Formtastic::Inputs::Base::Errors

#error_first_html, #error_html, #error_keys, #error_list_html, #error_none_html, #error_sentence_html, #errors, #errors?

Methods included from Formtastic::Inputs::Base::Database

#column, #column?

Methods included from Formtastic::Inputs::Base::Options

#formtastic_options, #input_options

Methods included from Formtastic::Inputs::Base::Html

#dom_id, #dom_index

Instance Method Details

#check_box_htmlObject



65
66
67
# File 'lib/formtastic/inputs/boolean_input.rb', line 65

def check_box_html
  template.check_box_tag("#{object_name}[#{method}]", checked_value, checked?, input_html_options)
end

#checked?Boolean

Returns:

  • (Boolean)


81
82
83
# File 'lib/formtastic/inputs/boolean_input.rb', line 81

def checked?
  object && ActionView::Helpers::InstanceTag.check_box_checked?(object.send(method), checked_value)
end

#checked_valueObject



73
74
75
# File 'lib/formtastic/inputs/boolean_input.rb', line 73

def checked_value
  options[:checked_value] || '1'
end

#hidden_field_htmlObject



42
43
44
# File 'lib/formtastic/inputs/boolean_input.rb', line 42

def hidden_field_html
  template.hidden_field_tag(input_html_options[:name], unchecked_value, :id => nil, :disabled => input_html_options[:disabled] )
end

#input_html_optionsObject



77
78
79
# File 'lib/formtastic/inputs/boolean_input.rb', line 77

def input_html_options
  {:name => "#{object_name}[#{method}]"}.merge(super)
end

#label_html_optionsObject



54
55
56
57
58
59
# File 'lib/formtastic/inputs/boolean_input.rb', line 54

def label_html_options
  input_html_options.merge(
    :id => nil,
    :for => input_html_options[:id]
  )
end

#label_text_with_embedded_checkboxObject



61
62
63
# File 'lib/formtastic/inputs/boolean_input.rb', line 61

def label_text_with_embedded_checkbox
  label_text << " " << check_box_html
end

#label_with_nested_checkboxObject



46
47
48
49
50
51
52
# File 'lib/formtastic/inputs/boolean_input.rb', line 46

def label_with_nested_checkbox
  builder.label(
    method,
    label_text_with_embedded_checkbox, 
    label_html_options
  )
end

#to_htmlObject



35
36
37
38
39
40
# File 'lib/formtastic/inputs/boolean_input.rb', line 35

def to_html
  input_wrapping do
    hidden_field_html << 
    label_with_nested_checkbox
  end
end

#unchecked_valueObject



69
70
71
# File 'lib/formtastic/inputs/boolean_input.rb', line 69

def unchecked_value
  options[:unchecked_value] || '0'
end