class DbSchema::Definitions::ForeignKey

Attributes

fields[R]
keys[R]
name[R]
on_delete[R]
on_update[R]
table[R]

Public Class Methods

new(name:, fields:, table:, keys: [], on_update: :no_action, on_delete: :no_action, deferrable: false) click to toggle source
# File lib/db_schema/definitions/foreign_key.rb, line 7
def initialize(name:, fields:, table:, keys: [], on_update: :no_action, on_delete: :no_action, deferrable: false)
  @name       = name
  @fields     = fields
  @table      = table
  @keys       = keys
  @on_update  = on_update
  @on_delete  = on_delete
  @deferrable = deferrable
end

Public Instance Methods

deferrable?() click to toggle source
# File lib/db_schema/definitions/foreign_key.rb, line 21
def deferrable?
  @deferrable
end
options() click to toggle source
# File lib/db_schema/definitions/foreign_key.rb, line 25
def options
  {
    deferrable: deferrable?,
    name:       name,
    on_delete:  on_delete,
    on_update:  on_update
  }.tap do |options|
    options[:key] = keys unless references_primary_key?
  end
end
references_primary_key?() click to toggle source
# File lib/db_schema/definitions/foreign_key.rb, line 17
def references_primary_key?
  keys.empty?
end