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