Module SimpleForm::ActionViewExtensions::Builder
In: lib/simple_form/action_view_extensions/builder.rb

A collection of methods required by simple_form but added to rails default form. This means that you can use such methods outside simple_form context.

Methods

Public Instance methods

Creates a collection of check boxes for each item in the collection, associated with a clickable label. Use value_method and text_method to convert items in the collection for use as text/value in check boxes. You can give a symbol or a proc to both value_method and text_method, that will be evaluated for each item in the collection.

Examples

  form_for @user do |f|
    f.collection_check_boxes :options, [[true, 'Yes'] ,[false, 'No']], :first, :last
  end

  <input name="user[options][]" type="hidden" value="" />
  <input id="user_options_true" name="user[options][]" type="checkbox" value="true" />
  <label class="collection_check_boxes" for="user_options_true">Yes</label>
  <input name="user[options][]" type="hidden" value="" />
  <input id="user_options_false" name="user[options][]" type="checkbox" value="false" />
  <label class="collection_check_boxes" for="user_options_false">No</label>

It is also possible to give a block that should generate the check box + label. To wrap the check box with the label, for instance:

  form_for @user do |f|
    f.collection_check_boxes(
      :options, [[true, 'Yes'] ,[false, 'No']], :first, :last
    ) do |b|
      b.label { b.check_box + b.text }
    end
  end

Options

Collection check box accepts some extra options:

  * checked  => the value or values that should be checked initially. Accepts
                a single item or an array of items. It overrides existing associations.

  * disabled => the value or values that should be disabled. Accepts a single
                item or an array of items.

  * collection_wrapper_tag   => the tag to wrap the entire collection.

  * collection_wrapper_class => the CSS class to use for collection_wrapper_tag

  * item_wrapper_tag         => the tag to wrap each item in the collection.

  * item_wrapper_class       => the CSS class to use for item_wrapper_tag

  * a block                  => to generate the label + check box or any other component.

Create a collection of radio inputs for the attribute. Basically this helper will create a radio input associated with a label for each text/value option in the collection, using value_method and text_method to convert these text/value. You can give a symbol or a proc to both value_method and text_method, that will be evaluated for each item in the collection.

Examples

  form_for @user do |f|
    f.collection_radio_buttons :options, [[true, 'Yes'] ,[false, 'No']], :first, :last
  end

  <input id="user_options_true" name="user[options]" type="radio" value="true" />
  <label class="collection_radio_buttons" for="user_options_true">Yes</label>
  <input id="user_options_false" name="user[options]" type="radio" value="false" />
  <label class="collection_radio_buttons" for="user_options_false">No</label>

It is also possible to give a block that should generate the radio + label. To wrap the radio with the label, for instance:

  form_for @user do |f|
    f.collection_radio_buttons(
      :options, [[true, 'Yes'] ,[false, 'No']], :first, :last
    ) do |b|
      b.label { b.radio_button + b.text }
    end
  end

Options

Collection radio accepts some extra options:

  * checked  => the value that should be checked initially.

  * disabled => the value or values that should be disabled. Accepts a single
                item or an array of items.

  * collection_wrapper_tag   => the tag to wrap the entire collection.

  * collection_wrapper_class => the CSS class to use for collection_wrapper_tag

  * item_wrapper_tag         => the tag to wrap each item in the collection.

  * item_wrapper_class       => the CSS class to use for item_wrapper_tag

  * a block                  => to generate the label + radio or any other component.

Wrapper for using SimpleForm inside a default rails form. Example:

  form_for @user do |f|
    f.simple_fields_for :posts do |posts_form|
      # Here you have all simple_form methods available
      posts_form.input :title
    end
  end

[Validate]