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