Class: PgSearch::Configuration::Association

Inherits:
Object
  • Object
show all
Defined in:
lib/pg_search/configuration/association.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model, name, column_names) ⇒ Association

Returns a new instance of Association.



10
11
12
13
14
15
16
# File 'lib/pg_search/configuration/association.rb', line 10

def initialize(model, name, column_names)
  @model = model
  @name = name
  @columns = Array(column_names).map do |column_name, weight|
    ForeignColumn.new(column_name, weight, @model, self)
  end
end

Instance Attribute Details

#columnsObject (readonly)

Returns the value of attribute columns.



8
9
10
# File 'lib/pg_search/configuration/association.rb', line 8

def columns
  @columns
end

Instance Method Details

#join(primary_key) ⇒ Object



22
23
24
# File 'lib/pg_search/configuration/association.rb', line 22

def join(primary_key)
  "LEFT OUTER JOIN (#{relation(primary_key).to_sql}) #{subselect_alias} ON #{subselect_alias}.id = #{primary_key}"
end

#subselect_aliasObject



26
27
28
# File 'lib/pg_search/configuration/association.rb', line 26

def subselect_alias
  Configuration.alias(table_name, @name, "subselect")
end

#table_nameObject



18
19
20
# File 'lib/pg_search/configuration/association.rb', line 18

def table_name
  @model.reflect_on_association(@name).table_name
end