mirror of https://github.com/rails/rails
Merge pull request #5691 from avakhov/form-label-block
Block version of label should wrapped in field_with_errors in case of error
This commit is contained in:
commit
eb154c5299
|
@ -33,7 +33,7 @@ module ActionView
|
|||
options["for"] = name_and_id["id"] unless options.key?("for")
|
||||
|
||||
if block_given?
|
||||
@template_object.label_tag(name_and_id["id"], options, &block)
|
||||
content = @template_object.capture(&block)
|
||||
else
|
||||
content = if @content.blank?
|
||||
@object_name.gsub!(/\[(.*)_attributes\]\[\d\]/, '.\1')
|
||||
|
@ -55,9 +55,9 @@ module ActionView
|
|||
end
|
||||
|
||||
content ||= @method_name.humanize
|
||||
|
||||
label_tag(name_and_id["id"], content, options)
|
||||
end
|
||||
|
||||
label_tag(name_and_id["id"], content, options)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1080,6 +1080,20 @@ class FormHelperTest < ActionView::TestCase
|
|||
assert_dom_equal expected, output_buffer
|
||||
end
|
||||
|
||||
def test_form_for_label_error_wrapping_block_and_non_block_versions
|
||||
form_for(@post) do |f|
|
||||
concat f.label(:author_name, 'Name', :class => 'label')
|
||||
concat f.label(:author_name, :class => 'label') { 'Name' }
|
||||
end
|
||||
|
||||
expected = whole_form('/posts/123', 'edit_post_123' , 'edit_post', 'patch') do
|
||||
"<div class='field_with_errors'><label for='post_author_name' class='label'>Name</label></div>" +
|
||||
"<div class='field_with_errors'><label for='post_author_name' class='label'>Name</label></div>"
|
||||
end
|
||||
|
||||
assert_dom_equal expected, output_buffer
|
||||
end
|
||||
|
||||
def test_form_for_with_namespace
|
||||
form_for(@post, :namespace => 'namespace') do |f|
|
||||
concat f.text_field(:title)
|
||||
|
|
Loading…
Reference in New Issue