This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module ActiveRecord | |
class Base | |
def to_yaml_with_association_pruning(opts = {}) | |
# detect and remove any cached associations | |
self.class.reflect_on_all_associations.each do |a| | |
ivar = "@#{a.name}" | |
remove_instance_variable(ivar) if instance_variable_defined?(ivar) | |
end | |
to_yaml_without_association_pruning(opts) | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module ActiveRecord | |
class Base | |
def to_yaml_with_nil_handling(opts = {}) | |
# detect and remove any belongs_to association proxies | |
self.class.reflect_on_all_associations.find_all { |a| a.macro == :belongs_to }.each do |a| | |
ivar = "@#{a.name}" | |
remove_instance_variable(ivar) if instance_variable_defined?(ivar) && instance_variable_get(ivar).class.nil? | |
end | |
to_yaml_without_nil_handling(opts) | |
end |
NewerOlder