From fb0bd8c1092db51888ec4bb72af6c595e13c31fa Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Sun, 1 Aug 2010 19:32:22 -0300 Subject: [PATCH] Makes form_helper use overriden model accessors [#3374 state:committed] --- .../lib/action_view/helpers/form_helper.rb | 6 +++--- actionpack/test/template/form_helper_test.rb | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/actionpack/lib/action_view/helpers/form_helper.rb b/actionpack/lib/action_view/helpers/form_helper.rb index b0af83652248c..f8e60faa2a165 100644 --- a/actionpack/lib/action_view/helpers/form_helper.rb +++ b/actionpack/lib/action_view/helpers/form_helper.rb @@ -1005,9 +1005,9 @@ def value(object, method_name) def value_before_type_cast(object, method_name) unless object.nil? - object.respond_to?(method_name + "_before_type_cast") ? - object.send(method_name + "_before_type_cast") : - object.send(method_name) + object.respond_to?(method_name) ? + object.send(method_name) : + object.send(method_name + "_before_type_cast") end end diff --git a/actionpack/test/template/form_helper_test.rb b/actionpack/test/template/form_helper_test.rb index 9ddfa13c16f74..f248a38ae9c94 100644 --- a/actionpack/test/template/form_helper_test.rb +++ b/actionpack/test/template/form_helper_test.rb @@ -4,6 +4,16 @@ class FormHelperTest < ActionView::TestCase tests ActionView::Helpers::FormHelper + class Developer + def name_before_type_cast + "David" + end + + def name + "Santiago" + end + end + def form_for(*) @output_buffer = super end @@ -233,6 +243,13 @@ def test_text_field_with_custom_type text_field("user", "email", :type => "email") end + def test_text_field_from_a_user_defined_method + @developer = Developer.new + assert_dom_equal( + '', text_field("developer", "name") + ) + end + def test_check_box assert_dom_equal( '',