Class: ActionView::Helpers::InstanceTag
- Inherits:
-
Object
- Object
- ActionView::Helpers::InstanceTag
- Defined in:
- lib/simple_form/action_view_extensions/builder.rb
Overview
Backport Rails fix to checkbox tag element, which does not generate the hidden input when given nil as unchecked value. This is to make SimpleForm collection check boxes helper to work fine with nested boolean style, when they are wrapped in labels. Without that, clicking in the label would actually change the hidden input, instead of the checkbox. FIXME: remove when support only Rails >= 3.2.2.
Instance Method Summary collapse
Instance Method Details
#to_check_box_tag(options = {}, checked_value = "1", unchecked_value = "0") ⇒ Object
333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 |
# File 'lib/simple_form/action_view_extensions/builder.rb', line 333 def to_check_box_tag( = {}, checked_value = "1", unchecked_value = "0") = .stringify_keys ["type"] = "checkbox" ["value"] = checked_value if .has_key?("checked") cv = .delete "checked" checked = cv == true || cv == "checked" else checked = self.class.check_box_checked?(value(object), checked_value) end ["checked"] = "checked" if checked if ["multiple"] add_default_name_and_id_for_value(checked_value, ) .delete("multiple") else add_default_name_and_id() end hidden = unchecked_value ? tag("input", "name" => ["name"], "type" => "hidden", "value" => unchecked_value, "disabled" => ["disabled"]) : "".html_safe checkbox = tag("input", ) hidden + checkbox end |