diff options
author | Piotr Sarnacki <drogus@gmail.com> | 2012-01-15 12:06:50 +0100 |
---|---|---|
committer | Piotr Sarnacki <drogus@gmail.com> | 2012-01-15 15:54:59 +0100 |
commit | b164e81c1159baf35af3e22a9c6b43875c1fcf49 (patch) | |
tree | 7231d72dcdcb6489b99a92fd36f956beed3d9405 /activemodel/lib | |
parent | 85629c83af7d0d67d483174d836dc6daf1196e7b (diff) | |
download | rails-b164e81c1159baf35af3e22a9c6b43875c1fcf49.tar.gz rails-b164e81c1159baf35af3e22a9c6b43875c1fcf49.tar.bz2 rails-b164e81c1159baf35af3e22a9c6b43875c1fcf49.zip |
Fix stack level too deep when model does not have attributes method.
Without that patch when using ActiveModel::AttributeMethods
in a class that does not respond to `attributes` method,
stack level too deep error will be raised on non existing
method. While documentation is clear that you need to define
`attributes` method in order to use AttributeMethods module,
`stack level too deep` is rather obscure and hard to debug,
therefore we should try to not break `method_missing` if
someone forgets about defining `attributes`.
Diffstat (limited to 'activemodel/lib')
-rw-r--r-- | activemodel/lib/active_model/attribute_methods.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb index 71ab1501c8..432f3d4302 100644 --- a/activemodel/lib/active_model/attribute_methods.rb +++ b/activemodel/lib/active_model/attribute_methods.rb @@ -394,7 +394,7 @@ module ActiveModel protected def attribute_method?(attr_name) - attributes.include?(attr_name) + respond_to_without_attributes?(:attributes) && attributes.include?(attr_name) end private |