Class: ActiveRecord::Associations::ClassMethods::JoinDependency::JoinBase

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

Direct Known Subclasses

JoinAssociation

Instance Method Summary collapse

Instance Method Details

#aliased_primary_keyObject



93
94
95
96
97
# File 'lib/composite_primary_keys/associations.rb', line 93

def aliased_primary_key
  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



105
106
107
108
109
110
111
112
113
114
# File 'lib/composite_primary_keys/associations.rb', line 105

def column_names_with_alias
  unless @column_names_with_alias
    @column_names_with_alias = []
    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
  return @column_names_with_alias
end

#record_id(row) ⇒ Object



99
100
101
102
103
# File 'lib/composite_primary_keys/associations.rb', line 99

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