Class: ActiveRecord::Associations::JoinDependency::JoinPart

Inherits:
Object
  • Object
show all
Defined in:
lib/composite_primary_keys/associations/join_dependency/join_part.rb

Instance Method Summary collapse

Instance Method Details

#aliased_primary_keyObject



5
6
7
8
9
10
11
12
# File 'lib/composite_primary_keys/associations/join_dependency/join_part.rb', line 5

def aliased_primary_key
  # CPK
  # "#{aliased_prefix}_r0"

  active_record.composite? ?
    primary_key.inject([]) {|aliased_keys, key| aliased_keys << "#{ aliased_prefix }_r#{aliased_keys.length}"} :
    "#{ aliased_prefix }_r0"
end

#column_names_with_aliasObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/composite_primary_keys/associations/join_dependency/join_part.rb', line 22

def column_names_with_alias
  unless @column_names_with_alias
    @column_names_with_alias = []

    # CPK
    #([primary_key] + (column_names - [primary_key])).each_with_index do |column_name, i|
    keys = active_record.composite? ? primary_key.map(&:to_s) : [primary_key]

    (keys + (column_names - keys)).each_with_index do |column_name, i|
      @column_names_with_alias << [column_name, "#{aliased_prefix}_r#{i}"]
    end
  end
  @column_names_with_alias
end

#record_id(row) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/composite_primary_keys/associations/join_dependency/join_part.rb', line 14

def record_id(row)
  # CPK
  # row[aliased_primary_key]
  active_record.composite? ?
    aliased_primary_key.map {|key| row[key]}.to_composite_keys :
    row[aliased_primary_key]
end