Method: LolDba::RelationInspector#get_through_foreign_key

Defined in:
lib/lol_dba/index_finding/relation_inspector.rb

#get_through_foreign_key(target_class, reflection_options) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/lol_dba/index_finding/relation_inspector.rb', line 11

def get_through_foreign_key(target_class, reflection_options)
  # has_many :through
  reflection = target_class.reflections[reflection_options.options[:through].to_s]

  # has_and_belongs_to_many
  reflection ||= reflection_options

  # Guess foreign key?
  if reflection.options[:foreign_key]
    reflection.options[:foreign_key]
  else
    "#{target_class.name.tableize.singularize}_id"
  end
end