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 commit3ba8e31005
andfb0bd8c109
.
This commit is contained in:
parent
cc8e386d08
commit
cb26eee54d
2 changed files with 3 additions and 38 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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" />',
|
||||
|
|
Loading…
Reference in a new issue