Method: SimpleForm::FormBuilder#collection_check_boxes

Defined in:
lib/simple_form/form_builder.rb

- (Object) collection_check_boxes(method, collection, value_method, text_method, options = {}, html_options = {}, &block)

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. This option
                              is ignored if the :collection_wrapper_tag option is blank.

* 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.


440
441
442
# File 'lib/simple_form/form_builder.rb', line 440

def collection_check_boxes(method, collection, value_method, text_method, options = {}, html_options = {}, &block)
  SimpleForm::Tags::CollectionCheckBoxes.new(@object_name, method, @template, collection, value_method, text_method, objectify_options(options), @default_options.merge(html_options)).render(&block)
end

Comments