mirror of
https://github.com/github/rails.git
synced 2026-01-10 07:07:54 -05:00
fix block.arity raise nil error when not given a block to "content_tag_for"
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
## Rails 3.2.10 (unreleased) ##
|
||||
|
||||
* Fix a bug in `ActionView::Helpers::RecordTagHelper::content_tag_for`
|
||||
raise `nil:NilClass` without given a block.
|
||||
|
||||
*Jasl*
|
||||
|
||||
* Clear url helper methods when routes are reloaded by removing the methods
|
||||
explicitly rather than just clearing the module because it didn't work
|
||||
properly and could be the source of a memory leak.
|
||||
|
||||
@@ -98,7 +98,9 @@ module ActionView
|
||||
options, prefix = prefix, nil if prefix.is_a?(Hash)
|
||||
options = options ? options.dup : {}
|
||||
options.merge!(:class => "#{dom_class(record, prefix)} #{options[:class]}".strip, :id => dom_id(record, prefix))
|
||||
if block.arity == 0
|
||||
if !block_given?
|
||||
content_tag(tag_name, "", options)
|
||||
elsif block.arity == 0
|
||||
content_tag(tag_name, capture(&block), options)
|
||||
else
|
||||
content_tag(tag_name, capture(record, &block), options)
|
||||
|
||||
@@ -81,6 +81,14 @@ class RecordTagHelperTest < ActionView::TestCase
|
||||
assert_dom_equal expected, actual
|
||||
end
|
||||
|
||||
def test_content_tag_for_collection_without_given_block
|
||||
post_1 = RecordTagPost.new.tap { |post| post.id = 101; post.body = "Hello!"; post.persisted = true }
|
||||
post_2 = RecordTagPost.new.tap { |post| post.id = 102; post.body = "World!"; post.persisted = true }
|
||||
expected = %(<li class="record_tag_post" id="record_tag_post_101"></li>\n<li class="record_tag_post" id="record_tag_post_102"></li>)
|
||||
actual = content_tag_for(:li, [post_1, post_2])
|
||||
assert_dom_equal expected, actual
|
||||
end
|
||||
|
||||
def test_div_for_collection
|
||||
post_1 = RecordTagPost.new.tap { |post| post.id = 101; post.body = "Hello!"; post.persisted = true }
|
||||
post_2 = RecordTagPost.new.tap { |post| post.id = 102; post.body = "World!"; post.persisted = true }
|
||||
|
||||
Reference in New Issue
Block a user