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

- (Object) aliased_primary_key



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

- (Object) column_names_with_alias



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

- (Object) record_id(row)



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