Class ActiveRecord::Associations::ClassMethods::JoinDependency::JoinBase
In: vendor/rails/activerecord/lib/active_record/associations.rb
Parent: Object

Methods

Attributes

active_record  [R] 
table_joins  [R] 

Public Class methods

[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

[Source]

      # File vendor/rails/activerecord/lib/active_record/associations.rb, line 1366
1366:             def aliased_prefix
1367:               "t0"
1368:             end

[Source]

      # File vendor/rails/activerecord/lib/active_record/associations.rb, line 1370
1370:             def aliased_primary_key
1371:               "#{ aliased_prefix }_r0"
1372:             end

[Source]

      # File vendor/rails/activerecord/lib/active_record/associations.rb, line 1374
1374:             def aliased_table_name
1375:               active_record.table_name
1376:             end

[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

[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

[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

[Source]

      # File vendor/rails/activerecord/lib/active_record/associations.rb, line 1392
1392:             def record_id(row)
1393:               row[aliased_primary_key]
1394:             end

[Validate]