From c89e1c7bdefa2489f6ebd04862a426b7200bf494 Mon Sep 17 00:00:00 2001 From: Jon Leighton Date: Mon, 12 Sep 2011 23:58:20 +0100 Subject: Add an attribute_missing method to ActiveModel::AttributeMethods. This can be overloaded by implementors if necessary. --- activemodel/test/cases/attribute_methods_test.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'activemodel/test') diff --git a/activemodel/test/cases/attribute_methods_test.rb b/activemodel/test/cases/attribute_methods_test.rb index 198e4c3c06..e655c7a1af 100644 --- a/activemodel/test/cases/attribute_methods_test.rb +++ b/activemodel/test/cases/attribute_methods_test.rb @@ -187,4 +187,19 @@ class AttributeMethodsTest < ActiveModel::TestCase assert m.respond_to?(:protected_method) assert m.respond_to?(:protected_method, true) end + + test 'should use attribute_missing to dispatch a missing attribute' do + m = ModelWithAttributes2.new + m.attributes = { 'foo' => 'bar' } + + def m.attribute_missing(match, *args, &block) + match + end + + match = m.foo_test + + assert_equal 'foo', match.attr_name + assert_equal 'attribute_test', match.target + assert_equal 'foo_test', match.method_name + end end -- cgit v1.2.3