Sha256: 61d52dde27782adcefbbb330d416024aae82a4962a598f7cb26a2c1a0f3e5a6c
Contents?: true
Size: 1.15 KB
Versions: 2
Compression:
Stored size: 1.15 KB
Contents
module Replication module Modules module Association def self.included(model_class) model_class.accepts_nested_attributes_for *model_class.replication_config.options[:associations] end def strand_attributes super associations_to_replicate = self.class.replication_config.options[:associations] if associations_to_replicate if associations_to_replicate.last.class == Hash associations_to_replicate.pop end associations_to_replicate.each do |a| association_reflection = self.class.reflect_on_association(a) association_model = association_reflection.klass attributes_from_association = association_model.column_names.dup attributes_from_association.delete('id') attributes_from_association.delete(association_reflection.foreign_key) @strand_attributes.merge!({ "#{a}_attributes".to_sym => self.send(association_reflection.name).select(attributes_from_association).to_a.map(&:serializable_hash) }) end end @strand_attributes end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
replication-0.4.1 | lib/replication/modules/association.rb |
replication-0.4.0 | lib/replication/modules/association.rb |