提交 d18a2742 编写于 作者: J José Valim

Improve previous patch a bit [#3645 state:resolved]

上级 6e69b42b
......@@ -576,12 +576,12 @@ def fields_for(record_or_name_or_array, *args, &block)
# label(:post, :terms) do
# 'Accept <a href="/terms">Terms</a>.'
# end
def label(object_name, method, content_or_options_with_block = nil, options = nil, &block)
def label(object_name, method, content_or_options = nil, options = nil, &block)
if block_given?
options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
options = content_or_options if content_or_options.is_a?(Hash)
text = nil
else
text = content_or_options_with_block
text = content_or_options
end
options ||= {}
......
......@@ -156,15 +156,12 @@ def text_field_tag(name, value = nil, options = {})
#
# label_tag 'name', nil, :class => 'small_label'
# # => <label for="name" class="small_label">Name</label>
def label_tag(name = nil, content_or_options_with_block = nil, options = nil, &block)
if block_given?
options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
end
def label_tag(name = nil, content_or_options = nil, options = nil, &block)
options = content_or_options if block_given? && content_or_options.is_a?(Hash)
options ||= {}
options.stringify_keys!
options["for"] = sanitize_to_id(name) unless name.blank? || options.has_key?("for")
content_tag :label, content_or_options_with_block || name.to_s.humanize, options, &block
content_tag :label, content_or_options || name.to_s.humanize, options, &block
end
# Creates a hidden form input field used to transmit data that would be lost due to HTTP's statelessness or
......
......@@ -297,6 +297,11 @@ def test_label_tag_with_block_and_argument
assert_dom_equal('<label for="clock">Grandfather</label>', output)
end
def test_label_tag_with_block_and_argument_and_options
output = label_tag("clock", :id => "label_clock") { "Grandfather" }
assert_dom_equal('<label for="clock" id="label_clock">Grandfather</label>', output)
end
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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册