From 63e435955e16cf976a8382e757529f4597549f2e Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sun, 6 Dec 2009 18:22:09 -0800 Subject: Ruby 1.9.2: explicitly raise NoMethodError for explicit coercion attempts --- activemodel/lib/active_model/attribute_methods.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'activemodel/lib/active_model') diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb index 977a101277..8f855958c6 100644 --- a/activemodel/lib/active_model/attribute_methods.rb +++ b/activemodel/lib/active_model/attribute_methods.rb @@ -235,6 +235,10 @@ module ActiveModel # It's also possible to instantiate related objects, so a Client class belonging to the clients # table with a +master_id+ foreign key can instantiate master through Client#master. def method_missing(method_id, *args, &block) + if method_id == :to_ary || method_id == :to_str + raise NoMethodError, "undefined method `#{method_id}' for #{inspect}:#{self.class}" + end + method_name = method_id.to_s if match = match_attribute_method?(method_name) guard_private_attribute_method!(method_name, args) -- cgit v1.2.3