Module: Foreigner::ConnectionAdapters::Table
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/foreigner/connection_adapters/abstract/table.rb
Instance Method Summary collapse
-
#foreign_key(to_table, options = {}) ⇒ Object
Adds a new foreign key to the table.
-
#references_with_foreign_keys(*args) ⇒ Object
Deprecated.
-
#remove_foreign_key(options) ⇒ Object
Remove the given foreign key from the table.
Instance Method Details
#foreign_key(to_table, options = {}) ⇒ Object
Adds a new foreign key to the table. to_table
can be a single Symbol, or an Array of Symbols. See SchemaStatements#add_foreign_key
Examples
Creating a simple foreign key
t.foreign_key(:people)
Defining the column
t.foreign_key(:people, column: :sender_id)
Creating a named foreign key
t.foreign_key(:people, column: :sender_id, name: 'sender_foreign_key')
Defining the column of the to_table
.
t.foreign_key(:people, column: :sender_id, primary_key: :person_id)
22 23 24 |
# File 'lib/foreigner/connection_adapters/abstract/table.rb', line 22 def foreign_key(to_table, = {}) @base.add_foreign_key(@table_name, to_table, ) end |
#references_with_foreign_keys(*args) ⇒ Object
Deprecated
46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/foreigner/connection_adapters/abstract/table.rb', line 46 def references_with_foreign_keys(*args) = args. if = .delete(:foreign_key) p ActiveSupport::Deprecation.send(:deprecation_message, caller, ":foreign_key in t.references is deprecated. " \ "Use t.foreign_key instead") end references_without_foreign_keys(*(args.dup << )) end |
#remove_foreign_key(options) ⇒ Object
Remove the given foreign key from the table.
Examples
Remove the suppliers_company_id_fk in the suppliers table.
change_table :suppliers do |t|
t.remove_foreign_key :companies
end
Remove the foreign key named accounts_branch_id_fk in the accounts table.
change_table :accounts do |t|
t.remove_foreign_key column: :branch_id
end
Remove the foreign key named party_foreign_key in the accounts table.
change_table :accounts do |t|
t.remove_foreign_key name: :party_foreign_key
end
41 42 43 |
# File 'lib/foreigner/connection_adapters/abstract/table.rb', line 41 def remove_foreign_key() @base.remove_foreign_key(@table_name, ) end |