method
new
v5.2.3 -
Show latest stable
- Class:
ActiveRecord::MismatchedForeignKey
new( adapter = nil, message: nil, sql: nil, binds: nil, table: nil, foreign_key: nil, target_table: nil, primary_key: nil, primary_key_column: nil )public
No documentation available.
# File activerecord/lib/active_record/errors.rb, line 120
def initialize(
adapter = nil,
message: nil,
sql: nil,
binds: nil,
table: nil,
foreign_key: nil,
target_table: nil,
primary_key: nil,
primary_key_column: nil
)
if table
type = primary_key_column.bigint? ? :bigint : primary_key_column.type
msg = Column `#{foreign_key}` on table `#{table}` does not match column `#{primary_key}` on `#{target_table}`, which has type `#{primary_key_column.sql_type}`. To resolve this issue, change the type of the `#{foreign_key}` column on `#{table}` to be :#{type}. (For example `t.#{type} :#{foreign_key}`)..squish
else
msg = There is a mismatch between the foreign key and primary key column types. Verify that the foreign key column type and the primary key of the associated table match types..squish
end
if message
msg << "\nOriginal message: #{message}"
end
super(msg)
end