Class: ActiveRecord::Associations::ClassMethods::JoinDependency::JoinBase
- Inherits:
-
Object
- Object
- ActiveRecord::Associations::ClassMethods::JoinDependency::JoinBase
- Defined in:
- lib/composite_primary_keys/associations.rb
Direct Known Subclasses
Instance Method Summary collapse
Instance Method Details
#aliased_primary_key ⇒ Object
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_alias ⇒ Object
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 |