module SimpleForm::ActionViewExtensions::Builder

def collection_check_boxes(attribute, collection, value_method, text_method, options={}, html_options={})


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

* item_wrapper_class => the CSS class to use for item_wrapper_tag

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

* collection_wrapper_class => the CSS class to use for collection_wrapper_tag

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

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

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

Collection check box accepts some extra options:

== Options

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

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








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

== Examples

that will be evaluated for each item in the collection.
You can give a symbol or a proc to both value_method and text_method,
convert items in the collection for use as text/value in check boxes.
associated with a clickable label. Use value_method and text_method to
Creates a collection of check boxes for each item in the collection,
def collection_check_boxes(attribute, collection, value_method, text_method, options={}, html_options={})
  rendered_collection = render_collection(
    collection, value_method, text_method, options, html_options
  ) do |item, value, text, default_html_options|
    default_html_options[:multiple] = true
    builder = instantiate_builder(CheckBoxBuilder, attribute, item, value, text, default_html_options)
    if block_given?
      yield builder
    else
      builder.check_box + builder.label(:class => "collection_check_boxes")
    end
  end
  # Append a hidden field to make sure something will be sent back to the
  # server if all checkboxes are unchecked.
  hidden = template.hidden_field_tag("#{object_name}[#{attribute}][]", "", :id => nil)
  wrap_rendered_collection(rendered_collection + hidden, options)
end