迁移“:依赖”选项

时间:2011-01-31 15:26:09

标签: ruby-on-rails ruby-on-rails-3

在迁移文件中,“ :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

2 个答案:

答案 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>

因此,这确保了如果品牌被删除,即品牌表中的梅赛德斯,则所有在汽车表中被标记为梅赛德斯的汽车也将被删除。