From 69633f1ff920df9e8647e3812df26bccc884c8d0 Mon Sep 17 00:00:00 2001 From: Josh Date: Mon, 29 Dec 2008 13:29:16 -0800 Subject: [PATCH] fixed date_select within fields_for with an index --- actionpack/lib/action_view/helpers/date_helper.rb | 6 +- actionpack/test/template/date_helper_test.rb | 67 ++++++++++++++++++++- 2 files changed, 69 insertions(+), 4 deletions(-) diff --git a/actionpack/lib/action_view/helpers/date_helper.rb b/actionpack/lib/action_view/helpers/date_helper.rb index 4305617..32f826a 100644 --- a/actionpack/lib/action_view/helpers/date_helper.rb +++ b/actionpack/lib/action_view/helpers/date_helper.rb @@ -961,15 +961,15 @@ module ActionView class FormBuilder def date_select(method, options = {}, html_options = {}) - @template.date_select(@object_name, method, options.merge(:object => @object), html_options) + @template.date_select(@object_name, method, objectify_options(options), @default_options.merge(html_options)) end def time_select(method, options = {}, html_options = {}) - @template.time_select(@object_name, method, options.merge(:object => @object), html_options) + @template.time_select(@object_name, method, objectify_options(options), @default_options.merge(html_options)) end def datetime_select(method, options = {}, html_options = {}) - @template.datetime_select(@object_name, method, options.merge(:object => @object), html_options) + @template.datetime_select(@object_name, method, objectify_options(options), @default_options.merge(html_options)) end end end diff --git a/actionpack/test/template/date_helper_test.rb b/actionpack/test/template/date_helper_test.rb index 6ec01b7..82ee787 100644 --- a/actionpack/test/template/date_helper_test.rb +++ b/actionpack/test/template/date_helper_test.rb @@ -1227,6 +1227,38 @@ class DateHelperTest < ActionView::TestCase assert_dom_equal(expected, output_buffer) end + + def test_date_select_within_fields_for_with_index + @post = Post.new + @post.written_on = Date.new(2004, 6, 15) + id = 27 + + fields_for :post, @post, :index => id do |f| + concat f.date_select(:written_on) + end + + expected = "\n" + expected << "\n" + expected << "\n" + + assert_dom_equal(expected, output_buffer) + end + + def test_date_select_within_fields_for_with_blank_index + @post = Post.new + @post.written_on = Date.new(2004, 6, 15) + id = '' + + fields_for :post, @post, :index => id do |f| + concat f.date_select(:written_on) + end + + expected = "\n" + expected << "\n" + expected << "\n" + + assert_dom_equal(expected, output_buffer) + end def test_date_select_with_index @post = Post.new @@ -1243,7 +1275,6 @@ class DateHelperTest < ActionView::TestCase expected << %{\n" assert_dom_equal expected, date_select("post", "written_on", :index => id) @@ -1966,6 +1997,40 @@ class DateHelperTest < ActionView::TestCase assert_dom_equal expected, datetime_select("post", "updated_at", :index => id) end + def test_datetime_select_within_fields_for_with_options_index + @post = Post.new + @post.updated_at = Time.local(2004, 6, 15, 16, 35) + id = 456 + + fields_for :post, @post, :index => id do |f| + concat f.datetime_select(:updated_at) + end + + expected = %{\n" + + expected << %{\n" + + expected << %{\n" + + expected << " — " + + expected << %{\n" + expected << " : " + expected << %{\n" + + assert_dom_equal expected, output_buffer + end + def test_datetime_select_with_auto_index @post = Post.new @post.updated_at = Time.local(2004, 6, 15, 16, 35) -- 1.6.0