我要进行以下迁移
class CreateBooking < ActiveRecord::Migration[5.1]
def change
create_table :bookings do |t|
t.integer :day_period, default: 0
t.references :service, foreign_key: true, unique: true, dependent: :destroy, index: true
end
end
end
并生成以下架构:
create_table "bookings", force: :cascade do |t|
t.integer "day_period", default: 0
t.bigint "service_id"
t.index ["service_id"], name: "index_bookings_on_service_id"
end
当我运行运行consistency_fail
测试并通过失败的guard时,
There are calls to has_one that aren't backed by unique indexes.
----------------------------------------------------------------
Model Table Columns
----------------------------------------------------------------
Service bookings (service_id)
----------------------------------------------------------------
现在本来我没有unique: true
,但是我回滚并添加了它,仍然是同样的问题,再次,没有index: true
,所以我回滚并添加了它,仍然同样的问题。
我认为这是因为模式中的service_id
上没有unique: true
,但我不知道,我也找不到关于特定问题的任何信息。
是什么原因导致此问题,我正在做什么导致此问题,并且考虑到当前的迁移,我该怎么做才能解决该问题?
答案 0 :(得分:6)
t.references :service, foreign_key: true, dependent: :destroy, index: {unique: true}
的更多信息