From 7a0c2ba48b0145e5031e51d316407ba28d769905 Mon Sep 17 00:00:00 2001
From: Bogdan Gusiev <agresso@gmail.com>
Date: Tue, 5 Aug 2014 17:23:00 +0300
Subject: Fixed #select form builder helper to support block with html output

---
 actionview/lib/action_view/helpers/tags/select.rb    |  2 +-
 actionview/test/template/form_options_helper_test.rb | 13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

(limited to 'actionview')

diff --git a/actionview/lib/action_view/helpers/tags/select.rb b/actionview/lib/action_view/helpers/tags/select.rb
index 00881d9978..180900cc8d 100644
--- a/actionview/lib/action_view/helpers/tags/select.rb
+++ b/actionview/lib/action_view/helpers/tags/select.rb
@@ -3,7 +3,7 @@ module ActionView
     module Tags # :nodoc:
       class Select < Base # :nodoc:
         def initialize(object_name, method_name, template_object, choices, options, html_options)
-          @choices = block_given? ? template_object.capture { yield } : choices
+          @choices = block_given? ? template_object.capture { yield || "" } : choices
           @choices = @choices.to_a if @choices.is_a?(Range)
 
           @html_options = html_options
diff --git a/actionview/test/template/form_options_helper_test.rb b/actionview/test/template/form_options_helper_test.rb
index fbafb7aa08..d25fa3706f 100644
--- a/actionview/test/template/form_options_helper_test.rb
+++ b/actionview/test/template/form_options_helper_test.rb
@@ -591,6 +591,19 @@ class FormOptionsHelperTest < ActionView::TestCase
     )
   end
 
+  def test_select_under_fields_for_with_block_without_options
+    @post = Post.new
+
+    output_buffer = fields_for :post, @post do |f|
+      concat(f.select(:category) {})
+    end
+
+    assert_dom_equal(
+      "<select id=\"post_category\" name=\"post[category]\"></select>",
+      output_buffer
+    )
+  end
+
   def test_select_with_multiple_to_add_hidden_input
     output_buffer =  select(:post, :category, "", {}, :multiple => true)
     assert_dom_equal(
-- 
cgit v1.2.3