我正在編寫一個腳本,我在rails控制檯中運行。爲什麼Rails控制檯無法加載對ruby文件的更改
當我對文件進行更改時,即使我退出並重新加載rails控制檯,它也不會識別這些更改。
如何讓鋼軌識別並將更改加載到此文件?
該文件位於我的應用程序的根目錄中。我加載軌道控制檯,然後運行:
require 'file.rb'
該文件將運行良好的第一次,但如果我更改了文件,他們不會被加載。我可以刪除文件中的所有代碼並再次運行該文件,它仍然像編輯之前一樣運行。
我正在編寫一個腳本,我在rails控制檯中運行。爲什麼Rails控制檯無法加載對ruby文件的更改
當我對文件進行更改時,即使我退出並重新加載rails控制檯,它也不會識別這些更改。
如何讓鋼軌識別並將更改加載到此文件?
該文件位於我的應用程序的根目錄中。我加載軌道控制檯,然後運行:
require 'file.rb'
該文件將運行良好的第一次,但如果我更改了文件,他們不會被加載。我可以刪除文件中的所有代碼並再次運行該文件,它仍然像編輯之前一樣運行。
如果要更改存儲在app/
目錄中的文件,可以使用reload!
命令重新加載這些文件。
如果您要進行更改,您需要退出並重新啓動控制檯。
需要注意的是,分機在撥打require
時幾乎總是被省略。另外需要注意的是,require 'file'
會在您的$LOAD_PATH
中查找file.rb
,並將在第一個中加載。有可能你有兩個同名的文件。嘗試重命名它看看是否有任何效果。
Rails有一個相當不錯的自動加載程序,所以如果您將文件放在正確的位置,通常不需要使用require
。例如,MyClass
可能會在app/models/my_class.rb
中並且會自動加載。自動加載器也可以配置爲在不同的地方查看。
更改爲什麼文件?它在一個子目錄中嗎?你如何讓控制檯運行它?你目前正在運行控制檯的目錄是什麼?你能否讓你的問題更具體?! – TopGunCoder
嘗試在每次更改後在控制檯中運行'reload!' – MrYoshiji
同意@MrYoshiji,你會發布答案嗎? – zeantsoi