diff options
author | Daniel Rodríguez Troitiño <drodrigueztroitino@yahoo.es> | 2010-03-15 19:11:46 +0100 |
---|---|---|
committer | wycats <wycats@gmail.com> | 2010-03-27 01:56:20 -0700 |
commit | 334983eca042b5016d3d79d7ed5761b60ba871ed (patch) | |
tree | 222e778ebbc77d33a2483a561f9420451761e348 | |
parent | 3172db12e4e7f6abab8ddd25f7911d29a5b65ea0 (diff) | |
download | rails-334983eca042b5016d3d79d7ed5761b60ba871ed.tar.gz rails-334983eca042b5016d3d79d7ed5761b60ba871ed.tar.bz2 rails-334983eca042b5016d3d79d7ed5761b60ba871ed.zip |
Recovers error_messages for ActiveRecordInstanceTag. [#4078 state:resolved]
Signed-off-by: wycats <wycats@gmail.com>
-rw-r--r-- | actionpack/lib/action_view/helpers/active_model_helper.rb | 4 | ||||
-rw-r--r-- | actionpack/test/template/active_model_helper_test.rb | 14 |
2 files changed, 18 insertions, 0 deletions
diff --git a/actionpack/lib/action_view/helpers/active_model_helper.rb b/actionpack/lib/action_view/helpers/active_model_helper.rb index e3db2923f7..bbe8609e91 100644 --- a/actionpack/lib/action_view/helpers/active_model_helper.rb +++ b/actionpack/lib/action_view/helpers/active_model_helper.rb @@ -295,6 +295,10 @@ module ActionView end end + def error_message + object.errors[@method_name] + end + def column_type object.send(:column_for_attribute, @method_name).type end diff --git a/actionpack/test/template/active_model_helper_test.rb b/actionpack/test/template/active_model_helper_test.rb index 371aa53c68..71c7d5b621 100644 --- a/actionpack/test/template/active_model_helper_test.rb +++ b/actionpack/test/template/active_model_helper_test.rb @@ -147,6 +147,20 @@ class ActiveModelHelperTest < ActionView::TestCase ) end + def test_field_error_proc + old_proc = ActionView::Base.field_error_proc + ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| + %(<div class=\"fieldWithErrors\">#{html_tag} <span class="error">#{[instance.error_message].join(', ')}</span></div>).html_safe + end + + assert_dom_equal( + %(<div class="fieldWithErrors"><input id="post_author_name" name="post[author_name]" size="30" type="text" value="" /> <span class="error">can't be empty</span></div>), + text_field("post", "author_name") + ) + ensure + ActionView::Base.field_error_proc = old_proc if old_proc + end + def test_form_with_string assert_dom_equal( %(<form action="create" method="post"><p><label for="post_title">Title</label><br /><input id="post_title" name="post[title]" size="30" type="text" value="Hello World" /></p>\n<p><label for="post_body">Body</label><br /><div class="fieldWithErrors"><textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea></div></p><input name="commit" type="submit" value="Create" /></form>), |