【发布时间】:2017-12-05 17:38:38
【问题描述】:
我正在维护一个使用 Rails 4.2 的旧系统,由于未知原因,这些引用是以这种方式创建的:
t.references :credit_card, null: false
t.references :car, null: false
t.references :profile, null: false
这允许我为此模型创建具有无效信用卡 ID 的寄存器,例如。 外键未经过验证。
生成索引迁移并没有将它们变成 fk 并且根本没有验证它们:
class AddIndexToRentals < ActiveRecord::Migration
def change
add_index :rentals, :credit_card_id
add_index :rentals, :car_id
add_index :rentals, :profile_id
end
end
如何使这些字段成为外键并只接受现有的 ID?
【问题讨论】:
标签: mysql ruby-on-rails ruby-on-rails-4 indexing foreign-keys