Class | ActiveRecord::Associations::ClassMethods::JoinDependency::JoinBase |
In: |
vendor/rails/activerecord/lib/active_record/associations.rb
|
Parent: | Object |
active_record | [R] | |
table_joins | [R] |
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1351 1351: def initialize(active_record, joins = nil) 1352: @active_record = active_record 1353: @cached_record = {} 1354: @table_joins = joins 1355: end
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1357 1357: def aliased_prefix 1358: "t0" 1359: end
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1361 1361: def aliased_primary_key 1362: "#{ aliased_prefix }_r0" 1363: end
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1365 1365: def aliased_table_name 1366: active_record.table_name 1367: end
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1369 1369: def column_names_with_alias 1370: unless @column_names_with_alias 1371: @column_names_with_alias = [] 1372: ([primary_key] + (column_names - [primary_key])).each_with_index do |column_name, i| 1373: @column_names_with_alias << [column_name, "#{ aliased_prefix }_r#{ i }"] 1374: end 1375: end 1376: return @column_names_with_alias 1377: end
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1379 1379: def extract_record(row) 1380: column_names_with_alias.inject({}){|record, (cn, an)| record[cn] = row[an]; record} 1381: end
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1387 1387: def instantiate(row) 1388: @cached_record[record_id(row)] ||= active_record.instantiate(extract_record(row)) 1389: end