aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/xml_serialization.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/xml_serialization.rb b/activerecord/lib/active_record/xml_serialization.rb
index df50ecc017..88ff46a004 100644
--- a/activerecord/lib/active_record/xml_serialization.rb
+++ b/activerecord/lib/active_record/xml_serialization.rb
@@ -178,10 +178,12 @@ module ActiveRecord #:nodoc:
end
def serializable_method_attributes
- Array(options[:methods]).collect { |name| MethodAttribute.new(name.to_s, @record) }
+ Array(options[:methods]).inject([]) do |method_attributes, name|
+ method_attributes << MethodAttribute.new(name.to_s, @record) if @record.respond_to?(name.to_s)
+ method_attributes
+ end
end
-
def add_attributes
(serializable_attributes + serializable_method_attributes).each do |attribute|
add_tag(attribute)