Skip to content

Commit fb0bd8c

Browse files
committed
Makes form_helper use overriden model accessors
[rails#3374 state:committed]
1 parent f78de68 commit fb0bd8c

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

actionpack/lib/action_view/helpers/form_helper.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,9 +1005,9 @@ def value(object, method_name)
10051005

10061006
def value_before_type_cast(object, method_name)
10071007
unless object.nil?
1008-
object.respond_to?(method_name + "_before_type_cast") ?
1009-
object.send(method_name + "_before_type_cast") :
1010-
object.send(method_name)
1008+
object.respond_to?(method_name) ?
1009+
object.send(method_name) :
1010+
object.send(method_name + "_before_type_cast")
10111011
end
10121012
end
10131013

actionpack/test/template/form_helper_test.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@
44
class FormHelperTest < ActionView::TestCase
55
tests ActionView::Helpers::FormHelper
66

7+
class Developer
8+
def name_before_type_cast
9+
"David"
10+
end
11+
12+
def name
13+
"Santiago"
14+
end
15+
end
16+
717
def form_for(*)
818
@output_buffer = super
919
end
@@ -233,6 +243,13 @@ def test_text_field_with_custom_type
233243
text_field("user", "email", :type => "email")
234244
end
235245

246+
def test_text_field_from_a_user_defined_method
247+
@developer = Developer.new
248+
assert_dom_equal(
249+
'<input id="developer_name" name="developer[name]" size="30" type="text" value="Santiago" />', text_field("developer", "name")
250+
)
251+
end
252+
236253
def test_check_box
237254
assert_dom_equal(
238255
'<input name="post[secret]" type="hidden" value="0" /><input checked="checked" id="post_secret" name="post[secret]" type="checkbox" value="1" />',

0 commit comments

Comments
 (0)