2010-11-19 52 views
4

有没有办法在Rails 3.x中预填充数据库表中的迁移?我有一个状态列表,我希望能够在我设置项目的构建时预先填充它。Rails在迁移中预填充表

回答

4

是的。创建表后,您可以调用状态模型并开始填充表。

class LoadStates < ActiveRecord::Migration 
    def self.up 
    states = ['state1','state2','state2'] 
    for state in states 
     State.create(:name=>state) 
    end 
    end 

    def self.down 
    State.delete_all 
    end 
end 

如果你想获得更看中我会用activerecord-import宝石做批量插入。如果您有数百或数千条记录要导入,这也是一种很好的方法。

def self.up 
    states = ['state1','state2','state2'] 
    states_for_import = [] 
    for state in states 
     states_for_import << State.new(:name=>state) 
    end 
    State.import states_for_import 
    end 
+1

'在y'语法X? – fotanus 2014-02-17 20:57:10