2015-03-03 64 views
0

我在使用rails進行遷移之後,是否有更快的方式可以更新列名?在rails中遷移之後重命名列

例如,在我的架構,實體用戶有一欄「USER_NAME」,我改變了對「名」通過遷移如下:

class FixColumnName < ActiveRecord::Migration 
    def change 
    rename_column :users, :user_name, :name 
    end 
end 

然後我跑

rake db:migrate 

但是,在其他文件中,比如test/users_controller_test.rb,列名仍然是「user_name」,我必須手動修改它。我想知道是否有辦法改變這個名字?

+0

如果此表是使用rails generate創建的,並且您剛剛開始使用該應用程序,則可以[使用rails destroy](http://stackoverflow.com/questions/4161357/how-do-i-reverse-a- rails-generate)來撤銷整個一代。 – 2015-03-03 02:24:58

+0

謝謝,但我寫了相當多的驗證和測試模型和控制器。雖然我試圖手動更改名稱,但是當我運行耙測試時,有大量錯誤。我想知道rails是否有這種重命名的機制? – ralphxiaoz 2015-03-03 02:28:58

+3

該機制是你的編輯器,編輯你的代碼使用'name'而不是'user_name'。 – 2015-03-03 02:38:16

回答

1

我不相信有什麼辦法,除了摧毀整個一代,使用CLI做到這一點。

您應該使用您的編輯器來查找/替換或進行更高級的重構。例如,在我使用的RubyMine中,有一個相當全面的重構功能。你可以閱讀關於它here

Goodluck!終端 上

+0

謝謝!我已經手動修改了一切,現在它可以工作。 – ralphxiaoz 2015-03-03 03:33:52

0

運行vim some path/test/users_controller_test.rb按Escape 類型: :%s/user_name/name/g命中再次進入 逃生,類型:x並回車

如果你不想使用vim,我敢肯定有辦法在你使用的任何文本編輯器中進行。在Google上搜索找到並替換爲您的編輯器的名稱。