Module: Foreigner::SchemaDumper::ClassMethods

Defined in:
lib/foreigner/schema_dumper.rb

Instance Method Summary collapse

Instance Method Details

#dump_foreign_key(foreign_key) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/foreigner/schema_dumper.rb', line 10

def dump_foreign_key(foreign_key)
  statement_parts = [ ('add_foreign_key ' + foreign_key.from_table.inspect) ]
  statement_parts << foreign_key.to_table.inspect
  statement_parts << (':name => ' + foreign_key.options[:name].inspect)

  if foreign_key.options[:column] != "#{foreign_key.to_table.singularize}_id"
    statement_parts << (':column => ' + foreign_key.options[:column].inspect)
  end
  if foreign_key.options[:primary_key] != 'id'
    statement_parts << (':primary_key => ' + foreign_key.options[:primary_key].inspect)
  end
  if foreign_key.options[:dependent].present?
    statement_parts << (':dependent => ' + foreign_key.options[:dependent].inspect)
  end

  statement_parts.join(', ')
end