Вариант для Cascade Delete для ссылок или On Delete

В Rails 4.2 при создании таблицы или добавлении ссылки через ссылки или add_reference, как вы указываете, что внешний ключ должен каскадироваться при удалении.

Команда для создания эшафота:

rails g scaffold Child parent:references name:string

Результативная миграция:

create_table :childs do |t|
  t.references :parent, index: true, foreign_key: true
  t.string :name

  t.timestamps null: false
end

Ответы

Ответ 1

Это должно работать

create_table :childs do |t|
  t.references :parent, index: true, foreign_key: {on_delete: :cascade}
  t.string :name

  t.timestamps null: false
end

Согласно ActiveRecord::ConnectionAdapters::TableDefinition#references, если хеш указан в опции foreign_key, он напрямую передается в метод foreign_key.

Источник:

foreign_key(col.to_s.pluralize, foreign_key_options.is_a?(Hash) ? foreign_key_options : {}) if foreign_key_options