class ActiveRecord::Associations::ClassMethods::JoinDependency::JoinBase
:nodoc:
def aliased_prefix
def aliased_prefix "t0" end
def aliased_primary_key
def aliased_primary_key "#{aliased_prefix}_r0" end
def aliased_table_name
def aliased_table_name active_record.table_name end
def column_names_with_alias
def column_names_with_alias unless defined?(@column_names_with_alias) @column_names_with_alias = [] ([primary_key] + (column_names - [primary_key])).each_with_index do |column_name, i| @column_names_with_alias << [column_name, "#{aliased_prefix}_r#{i}"] end end @column_names_with_alias end
def extract_record(row)
def extract_record(row) column_names_with_alias.inject({}){|record, (cn, an)| record[cn] = row[an]; record} end
def initialize(active_record, joins = nil)
def initialize(active_record, joins = nil) @active_record = active_record @cached_record = {} @table_joins = joins end
def instantiate(row)
def instantiate(row) @cached_record[record_id(row)] ||= active_record.send(:instantiate, extract_record(row)) end
def record_id(row)
def record_id(row) row[aliased_primary_key] end