29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/convergence/table.rb', line 29
def foreign_key(key_columns, options = {})
if options[:reference].nil? || options[:reference_column].nil?
fail ArgumentError.new("#{@table_name} - #{key_columns}: require reference/reference_column parameters")
end
key_name = options[:name]
key_name = "#{table_name}_#{[key_columns].flatten.join('_')}_fk" if key_name.nil?
@foreign_keys[key_name] = Convergence::ForeignKey.new(
key_name,
key_columns,
options[:reference],
[options[:reference_column]].flatten,
options.reject { |k, _v| k == :reference || k == :reference_column })
end
|