Class: DynamicFieldsets::CheckboxField
- Defined in:
- app/models/dynamic_fieldsets/checkbox_field.rb
Overview
Creates checkbox tags on a form
Includes support for predefined field options and multiple selected answers
Instance Method Summary collapse
-
#form_partial_locals(args) ⇒ Hash
Note that the checkbox needs individual data for each of the included options This means that some things, such as the name are duplicated for each field option.
Methods inherited from Field
#collect_default_values, #collect_field_records_by_fsa_and_fsc, descendant_collection, descendants, #display_type, #form_footer_partial, #form_header_partial, #form_partial, #get_value_for_show, #get_values_using_fsa_and_fsc, #has_defaults?, #html_attribute_hash, #in_use?, #show_footer_partial, #show_header_partial, #show_partial, #show_partial_locals, #update_field_records, #use_form_footer_partial?, #use_form_header_partial?, #use_show_footer_partial?, #use_show_header_partial?, #uses_field_options?
Instance Method Details
#form_partial_locals(args) ⇒ Hash
Note that the checkbox needs individual data for each of the included options This means that some things, such as the name are duplicated for each field option
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/models/dynamic_fieldsets/checkbox_field.rb', line 14 def form_partial_locals(args) output = super output[:options] = [] .each do |option| # rails is screwing up the ids just for the checkbox field # this is a (hopefully) temporary solution/hack to get the id right (JH 3-29-2012) # another possibility would be to update the html attributes method and add fsa and fsc arguments to it adjusted_html_attributes = html_attribute_hash.merge({ :id => "#{DynamicFieldsets.config.form_fieldset_associator_prefix}#{args[:fsa].id}_#{DynamicFieldsets.config.form_field_prefix}#{args[:fieldset_child].id}_#{option.id.to_s}" }); output[:options] << { :name => "#{DynamicFieldsets.config.form_fieldset_associator_prefix}#{args[:fsa].id}[#{DynamicFieldsets.config.form_field_prefix}#{args[:fieldset_child].id}][]", :value => option.id.to_s, :checked => values_or_defaults_for_form(args[:values]).include?(option.id.to_s), :label => option.name, :html_attributes => adjusted_html_attributes, } end return output end |