什么是:rails schema.rb中的cascade以及它来自哪里?

时间:2014-12-29 22:45:21

标签: ruby-on-rails

添加另一个迁移并偶尔决定删除和迁移后,我检查了schema.rb 并看到了这个

create_table "users", force: :cascade do |t|

我还没有做出这种改变,而且在远程我有这个

create_table "users", force: true do |t|

现在我在每张桌子前都有级联。什么是级联,它来自哪里?

2 个答案:

答案 0 :(得分:75)

The docs explain what :cascade does

  

:force - 设置为:cascade以删除相关对象。默认为false

您可能会看到这一点的一个原因是SchemaDumper中的Rails 4.2中的更改,以使用:cascaderelease notes

发布有关变更的说明:

  

SchemaDumperforce: :cascade上使用create_table。这使得在外键到位时可以重新加载模式。

答案 1 :(得分:5)

http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-create_table

:力 在创建表之前设置为true以删除表。设置为:cascade以删除依赖对象。默认为false