2012-02-03 80 views
3

我有一個表,我想一些其他的表,參考文件夾,到目前爲止我的遷移腳本是這樣的:是否可以幹這個遷移?

create_table :folders do |t| 
    t.timestamps 
end 

.... 

change_table table1 do |t| 
    t.references :folders 
end 
change_table table2 do |t| 
    t.references :folders 
end 
change_table table3 do |t| 
    t.references :folders 
end 
change_table table4 do |t| 
    t.references :folders 
end 

因爲我在做基本上是同樣的事情到每個表中,是否有更簡潔和可維護的方式來寫這個?

感謝

回答

5

嘗試這樣做:

[table1, table2, table3, table4].each do |tbl| 
    change_table tbl { |t| t.references :folders } 
end 

我希望你不要用命名模式table{#n}表,讓他們在你的實際代碼:)

+0

是的,這些名稱只是爲了抽象的例子:) – Chris 2012-02-03 11:12:24

0

好名字,你可以請嘗試這個。

(1..4).each do |num| 
     change_table "table#{num}" do |t| 
     t.references :folders 
     end 
    end 

希望它有幫助。

+0

你需要評估該字符串,否則它只是保持一個字符串;它不是指向表#對象的東西。 – omninonsense 2012-02-03 15:00:56

相關問題