Module: Switchman::ActiveRecord::BelongsToAssociation

Defined in:
lib/switchman/active_record/association.rb

Instance Method Summary collapse

Instance Method Details

#replace_keys(record) ⇒ Object



53
54
55
56
57
58
59
60
# File 'lib/switchman/active_record/association.rb', line 53

def replace_keys(record)
  if record && record.class.sharded_column?(reflection.association_primary_key(record.class))
    foreign_id = record[reflection.association_primary_key(record.class)]
    owner[reflection.foreign_key] = Shard.relative_id_for(foreign_id, record.shard, owner.shard)
  else
    super
  end
end

#shardObject



62
63
64
65
66
67
68
69
# File 'lib/switchman/active_record/association.rb', line 62

def shard
  if @owner.class.sharded_column?(@reflection.foreign_key) &&
      foreign_id = @owner[@reflection.foreign_key]
    Shard.shard_for(foreign_id, @owner.shard)
  else
    super
  end
end