module PgPower::ConnectionAdapters::Table::ForeignerMethods
Provides methods to extend ActiveRecord::ConnectionAdapters::Table to support foreign keys feature.
Public Instance Methods
foreign_key(to_table, options = {})
click to toggle source
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)
# File lib/pg_power/connection_adapters/table/foreigner_methods.rb, line 16 def foreign_key(to_table, options = {}) @base.add_foreign_key(@table_name, to_table, options) end
references_with_foreign_keys(*args)
click to toggle source
Deprecated
# File lib/pg_power/connection_adapters/table/foreigner_methods.rb, line 40 def references_with_foreign_keys(*args) options = args.extract_options! if options.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 << options)) end
remove_foreign_key(options)
click to toggle source
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_index :name => :party_foreign_key end
# File lib/pg_power/connection_adapters/table/foreigner_methods.rb, line 35 def remove_foreign_key(options) @base.remove_foreign_key(@table_name, options) end