gpt4 book ai didi

ruby-on-rails-4 - 如何创建一个用删除时级联约束更新外键的Rails迁移?

转载 作者:行者123 更新时间:2023-12-03 23:28:02 24 4
gpt4 key购买 nike

我正在使用Rails 4.2.3和PostgreSQL数据库。我想编写一个迁移来更新我的外键之一,使其具有删除时级联约束,因此我创建了以下代码:

class UpdateForeignKeyAddOnDeleteConstraint < ActiveRecord::Migration
def change
remove_foreign_key :my_object_times, :my_objects
add_foreign_key :my_object_times, :my_objects, on_delete: cascade
end
end

但是当我运行迁移时,出现以下错误:
$ rake db:migrate
== 20160525203028 UpdateForeignKeyAddOnDeleteConstraint: migrating ============
-- remove_foreign_key(:my_object_times, :my_objects)
-> 0.0454s
-- cascade()
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

undefined local variable or method `cascade' for #<UpdateForeignKeyAddOnDeleteConstraint:0x007f82f2c71998>
/Users/davea/.rvm/gems/ruby-2.3.0@global/gems/activerecord-4.2.5.1/lib/active_record/migration.rb:664:in `block in method_missing'
/Users/davea/.rvm/gems/ruby-2.3.0@global/gems/activerecord-4.2.5.1/lib/active_record/migration.rb:634:in `block in say_with_time'
/Users/davea/.rvm/gems/ruby-2.3.0@global/gems/activerecord-4.2.5.1/lib/active_record/migration.rb:634:in `say_with_time'
/Users/davea/.rvm/gems/ruby-2.3.0@global/gems/activerecord-4.2.5.1/lib/active_record/migration.rb:654:in `method_missing'

我应该如何编写迁移以更新外键?

最佳答案

您需要更改此行,

add_foreign_key :my_object_times, :my_objects, on_delete: cascade

有了这个:
add_foreign_key :my_object_times, :my_objects, on_delete: :cascade

简单的区别是 cascade应该是符号( :cascade)或字符串( 'cascade')。

希望这可以帮助。

问候,

关于ruby-on-rails-4 - 如何创建一个用删除时级联约束更新外键的Rails迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37447531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com