mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Tag helper should output an attribute with the value 'false' instead of omitting the attribute, if the associated option is false but not nil.
This commit is contained in:
parent
4c09210244
commit
4e9abdd7f1
3 changed files with 11 additions and 5 deletions
|
@ -133,10 +133,12 @@ module ActionView
|
|||
unless options.blank?
|
||||
attrs = []
|
||||
if escape
|
||||
options.each do |key, value|
|
||||
next unless value
|
||||
value = BOOLEAN_ATTRIBUTES.include?(key) ? key : escape_once(value)
|
||||
attrs << %(#{key}="#{value}")
|
||||
options.each_pair do |key, value|
|
||||
if BOOLEAN_ATTRIBUTES.include?(key)
|
||||
attrs << %(#{key}="#{key}") if value
|
||||
else
|
||||
attrs << %(#{key}="#{escape_once(value)}") if !value.nil?
|
||||
end
|
||||
end
|
||||
else
|
||||
attrs = options.map { |key, value| %(#{key}="#{value}") }
|
||||
|
|
|
@ -235,7 +235,7 @@ class FormTagHelperTest < ActionView::TestCase
|
|||
assert_match VALID_HTML_ID, label_elem['for']
|
||||
end
|
||||
|
||||
def test_boolean_optios
|
||||
def test_boolean_options
|
||||
assert_dom_equal %(<input checked="checked" disabled="disabled" id="admin" name="admin" readonly="readonly" type="checkbox" value="1" />), check_box_tag("admin", 1, true, 'disabled' => true, :readonly => "yes")
|
||||
assert_dom_equal %(<input checked="checked" id="admin" name="admin" type="checkbox" value="1" />), check_box_tag("admin", 1, true, :disabled => false, :readonly => nil)
|
||||
assert_dom_equal %(<select id="people" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people", "<option>david</option>", :multiple => true)
|
||||
|
|
|
@ -19,6 +19,10 @@ class TagHelperTest < ActionView::TestCase
|
|||
assert_equal "<p />", tag("p", :ignored => nil)
|
||||
end
|
||||
|
||||
def test_tag_options_accepts_false_option
|
||||
assert_equal "<p value=\"false\" />", tag("p", :value => false)
|
||||
end
|
||||
|
||||
def test_tag_options_accepts_blank_option
|
||||
assert_equal "<p included=\"\" />", tag("p", :included => '')
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue