ruby-on-rails - remove - rollback migration rails
OpciĆ³n para Cascade Delete para References o On Delete (1)
En Rails 4.2, cuando se crea una tabla o se agrega una referencia a través de referencias o add_reference, ¿cómo se especifica que la clave externa se debe conectar en cascada al eliminar?
Comando para generar andamio:
rails g scaffold Child parent:references name:string
Migración resultante:
create_table :childs do |t|
t.references :parent, index: true, foreign_key: true
t.string :name
t.timestamps null: false
end
Esto debería funcionar
create_table :childs do |t|
t.references :parent, index: true, foreign_key: {on_delete: :cascade}
t.string :name
t.timestamps null: false
end
De acuerdo con las ActiveRecord::ConnectionAdapters::TableDefinition#references
, si se especifica un hash en la opción foreign_key
, se pasa directamente al método foreign_key
.
fuente:
foreign_key(col.to_s.pluralize, foreign_key_options.is_a?(Hash) ? foreign_key_options : {}) if foreign_key_options