Class: ActiveRecord::Reflection::AssociationReflection

Inherits:
Object
  • Object
show all
Defined in:
lib/composite_primary_keys/reflection.rb

Instance Method Summary collapse

Instance Method Details

#cpk_primary_keyObject



18
19
20
21
# File 'lib/composite_primary_keys/reflection.rb', line 18

def cpk_primary_key
  # Make sure the returned key(s) are an array
  @cpk_primary_key ||= [derive_primary_key].flatten
end

#derive_primary_keyObject



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/composite_primary_keys/reflection.rb', line 4

def derive_primary_key
  result = if options[:foreign_key]
    options[:foreign_key]
  elsif belongs_to?
    #CPK
    #"#{name}_id"
    class_name.foreign_key
  elsif options[:as]
    "#{options[:as]}_id"
  else
    active_record.name.foreign_key
  end
end

#derive_primary_key_nameObject



27
28
29
30
31
32
33
34
35
36
# File 'lib/composite_primary_keys/reflection.rb', line 27

def derive_primary_key_name
  result = derive_primary_key

  # CPK
  if result.is_a?(Array)
    result.to_composite_keys.to_s
  else
    result
  end
end

#primary_key_nameObject



23
24
25
# File 'lib/composite_primary_keys/reflection.rb', line 23

def primary_key_name
  @primary_key_name ||= derive_primary_key_name
end