From e69eed0e10c0670869aea396cb79002da4f4580a Mon Sep 17 00:00:00 2001 From: Sam Pohlenz Date: Mon, 20 Jun 2011 11:27:04 +0930 Subject: Test for extractable_options? within nested fields_for. This fixes an error when a record object that is a subclass of Hash is passed to fields_for, which is incorrectly interpreted as field options. --- actionpack/test/template/form_helper_test.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'actionpack/test') diff --git a/actionpack/test/template/form_helper_test.rb b/actionpack/test/template/form_helper_test.rb index 0507045ad2..4d90e8968d 100644 --- a/actionpack/test/template/form_helper_test.rb +++ b/actionpack/test/template/form_helper_test.rb @@ -1689,6 +1689,24 @@ class FormHelperTest < ActionView::TestCase assert_dom_equal expected, output_buffer end + def test_nested_fields_for_with_hash_like_model + @author = Author.new + def @author.is_a?(klass); klass == Hash; end + def @author.extractable_options?; false; end + + form_for(@post) do |f| + concat f.fields_for(:author, @author) { |af| + concat af.text_field(:name) + } + end + + expected = whole_form('/posts/123', 'edit_post_123', 'edit_post', :method => 'put') do + '' + end + + assert_dom_equal expected, output_buffer + end + def test_fields_for output_buffer = fields_for(:post, @post) do |f| concat f.text_field(:title) -- cgit v1.2.3