lib/monarchy/acts_as_resource.rb in monarchy-2.2.1 vs lib/monarchy/acts_as_resource.rb in monarchy-2.2.2
- old
+ new
@@ -103,12 +103,18 @@
def assign_parent(force = false)
parentize = self.class.parentize_name
return unless parentize
- was_changed = changes["#{parentize}_id"] || changes["#{parentize}_type"]
+ keys = relation_keys(parentize)
+ was_changed = changes[keys[:foreign_key]] || changes[keys[:foreign_type]]
Monarchy::Validators.resource(send(parentize), true, false)
self.parent = send(parentize) if was_changed || force
+ end
+
+ def relation_keys(relation_name)
+ reflection = self.class.reflections[relation_name.to_s]
+ { foreign_key: reflection.foreign_key, foreign_type: reflection.foreign_type }
end
def children_resources
c = hierarchy.try(:children)
return nil if c.nil?