1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Revert "Make InstanceTagMethods#value_before_type_cast raise if the model don't respond to attr_before_type_cast or attr method"

And    "Makes form_helper use overriden model accessors"

This reverts commit 3ba8e31005 and fb0bd8c109.
This commit is contained in:
Santiago Pastorino 2010-10-10 21:07:53 -02:00
parent cc8e386d08
commit cb26eee54d
2 changed files with 3 additions and 38 deletions

View file

@ -1020,14 +1020,9 @@ module ActionView
def value_before_type_cast(object, method_name)
unless object.nil?
if object.respond_to?(method_name)
object.send(method_name)
# FIXME: this is AR dependent
elsif object.respond_to?(method_name + "_before_type_cast")
object.send(method_name + "_before_type_cast")
else
raise NoMethodError, "Model #{object.class} does not respond to #{method_name}"
end
object.respond_to?(method_name + "_before_type_cast") ?
object.send(method_name + "_before_type_cast") :
object.send(method_name)
end
end

View file

@ -4,18 +4,6 @@ require 'controller/fake_models'
class FormHelperTest < ActionView::TestCase
tests ActionView::Helpers::FormHelper
class Developer
def name_before_type_cast
"David"
end
def name
"Santiago"
end
attr_writer :language
end
def form_for(*)
@output_buffer = super
end
@ -278,24 +266,6 @@ class FormHelperTest < ActionView::TestCase
text_field("user", "email", :type => "email")
end
def test_text_field_from_a_user_defined_method
@developer = Developer.new
assert_dom_equal(
'<input id="developer_name" name="developer[name]" size="30" type="text" value="Santiago" />', text_field("developer", "name")
)
end
def test_text_field_on_a_model_with_undefined_attr_reader
@developer = Developer.new
@developer.language = 'ruby'
begin
text_field("developer", "language")
rescue NoMethodError => error
message = error.message
end
assert_equal "Model #{Developer} does not respond to language", message
end
def test_check_box
assert_dom_equal(
'<input name="post[secret]" type="hidden" value="0" /><input checked="checked" id="post_secret" name="post[secret]" type="checkbox" value="1" />',