在迁移文件中,“ :dependent
”选项用于什么,此选项的可能值是什么?每个值意味着什么?任何人都可以向我解释一下吗?
e.g。这里使用:dependent => :delete
def self.up
create_table :car, :id => false do |t|
t.integer :brand_id, :null =>false
t.timestamp :buy_at, :null => false
end
add_index :car, :brand_id
add_foreign_key :car, :brands, :dependent => :delete
end
def self.down
drop_table :balance_updated
end
答案 0 :(得分:0)
在“普通”Rails中,:dependent
选项在模型中使用,如下所示:
has_many :models, :dependent => :destroy
但是,我认为您使用的是foreign_key_migrations插件?
如果是这样,请查看this source code line以了解:dependent
选项正在执行的操作。
答案 1 :(得分:0)
FOREIGN KEY是用于将两个表链接在一起的键。
FOREIGN KEY是一个表中的一个字段(或字段集合),它引用另一个表中的PRIMARY KEY。 Reference
所以汽车的专栏brand_id取决于品牌表的(主键),通常称为brand_id(如果使用默认的rails数据库,则在sqlite3中默认命名)。 / p>
因此,这确保了如果品牌被删除,即品牌表中的梅赛德斯,则所有在汽车表中被标记为梅赛德斯的汽车也将被删除。