Methods
- aliased_prefix
- aliased_primary_key
- aliased_table_name
- column_names_with_alias
- extract_record
- instantiate
- new
- record_id
Attributes
[R] | active_record | |
[R] | table_joins |
Public Class methods
[ show source ]
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1360 1360: def initialize(active_record, joins = nil) 1361: @active_record = active_record 1362: @cached_record = {} 1363: @table_joins = joins 1364: end
Public Instance methods
[ show source ]
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1366 1366: def aliased_prefix 1367: "t0" 1368: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1370 1370: def aliased_primary_key 1371: "#{ aliased_prefix }_r0" 1372: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1374 1374: def aliased_table_name 1375: active_record.table_name 1376: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1378 1378: def column_names_with_alias 1379: unless @column_names_with_alias 1380: @column_names_with_alias = [] 1381: ([primary_key] + (column_names - [primary_key])).each_with_index do |column_name, i| 1382: @column_names_with_alias << [column_name, "#{ aliased_prefix }_r#{ i }"] 1383: end 1384: end 1385: return @column_names_with_alias 1386: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1388 1388: def extract_record(row) 1389: column_names_with_alias.inject({}){|record, (cn, an)| record[cn] = row[an]; record} 1390: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1396 1396: def instantiate(row) 1397: @cached_record[record_id(row)] ||= active_record.instantiate(extract_record(row)) 1398: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/associations.rb, line 1392 1392: def record_id(row) 1393: row[aliased_primary_key] 1394: end