小编Spe*_*or6的帖子

为什么我的 add_foreign_key on_delete:: 级联名称没有被转移到模式

为了正确处理 Postgres 的 ForeignKeyViolation 警告,我检查了我的每个模型并添加了 on_delete: 命令,如下所示。

我遵循的格式是

add_foreign_key <:named_table>, <:related_table>, on_delete: :cascade

但是,在进行这些更改并运行后,rails db:reset我注意到这些额外的参数没有传递到生成的 schema.rb 文件中,并且在尝试删除图像时仍然收到上述错误。

我的程序或语法有什么问题吗?先感谢您!

12345_create_document_images.rb

class CreateDocumentImages < ActiveRecord::Migration[5.1]
  def change
    create_table :document_images do |t|
      t.references :document, foreign_key: true
      t.references :image, foreign_key: true

      t.timestamps
    end

    add_foreign_key :document_images, :documents, on_delete: :cascade
    add_foreign_key :document_images, :images, on_delete: :cascade
  end
end
Run Code Online (Sandbox Code Playgroud)

模式文件

 add_foreign_key "document_images", "images"
 add_foreign_key "document_images", "documents"
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails rails-migrations ruby-on-rails-5 postgresql-9.6

2
推荐指数
1
解决办法
1674
查看次数