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.
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.
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
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.
# File lib/simple_form/action_view_extensions/builder.rb, line 165 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_collection_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
deprecated
# File lib/simple_form/action_view_extensions/builder.rb, line 108 def collection_radio(*args, &block) SimpleForm.deprecation_warn "The `collection_radio` helper is deprecated, " "please use `collection_radio_buttons` instead." collection_radio_buttons(*args, &block) end
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
# File lib/simple_form/action_view_extensions/builder.rb, line 195 def simple_fields_for(*args, &block) options = args.extract_options! options[:wrapper] = self.options[:wrapper] if options[:wrapper].nil? options[:defaults] ||= self.options[:defaults] if self.class < ActionView::Helpers::FormBuilder options[:builder] ||= self.class else options[:builder] ||= SimpleForm::FormBuilder end fields_for(*(args << options), &block) end
Generated with the Darkfish Rdoc Generator 2.