Allow serializers to receive instructions to

explicitly include or exclude specific lists of
associations.
This commit is contained in:
Yehuda Katz
2012-01-11 20:56:36 -07:00
parent cb316b00f7
commit 4ad9c64e46
2 changed files with 101 additions and 1 deletions

View File

@@ -372,7 +372,23 @@ module ActiveModel
def include_associations!(node)
_associations.each do |attr, klass|
include! attr, :node => node
opts = { :node => node }
if options.include?(:include) || options.include?(:exclude)
opts[:include] = included_association?(attr)
end
include! attr, opts
end
end
def included_association?(name)
if options.key?(:include)
options[:include].include?(name)
elsif options.key?(:exclude)
!options[:exclude].include?(name)
else
true
end
end