2013-10-10 80 views
3

我正在編寫一個腳本,我在rails控制檯中運行。爲什麼Rails控制檯無法加載對ruby文件的更改

當我對文件進行更改時,即使我退出並重新加載rails控制檯,它也不會識別這些更改。

如何讓鋼軌識別並將更改加載到此文件?

該文件位於我的應用程序的根目錄中。我加載軌道控制檯,然後運行:

require 'file.rb' 

該文件將運行良好的第一次,但如果我更改了文件,他們不會被加載。我可以刪除文件中的所有代碼並再次運行該文件,它仍然像編輯之前一樣運行。

+3

更改爲什麼文件?它在一個子目錄中嗎?你如何讓控制檯運行它?你目前正在運行控制檯的目錄是什麼?你能否讓你的問題更具體?! – TopGunCoder

+2

嘗試在每次更改後在控制檯中運行'reload!' – MrYoshiji

+0

同意@MrYoshiji,你會發布答案嗎? – zeantsoi

回答

9

如果要更改存儲在app/目錄中的文件,可以使用reload!命令重新加載這些文件。

如果您要進行更改,您需要退出並重新啓動控制檯。

需要注意的是,分機在撥打require時幾乎總是被省略。另外需要注意的是,require 'file'會在您的$LOAD_PATH中查找file.rb,並將在第一個中加載。有可能你有兩個同名的文件。嘗試重命名它看看是否有任何效果。

Rails有一個相當不錯的自動加載程序,所以如果您將文件放在正確的位置,通常不需要使用require。例如,MyClass可能會在app/models/my_class.rb中並且會自動加載。自動加載器也可以配置爲在不同的地方查看。

相關問題