[英]What are reasons “reload!” doesn't always seem to work in the Rails console?
我只是掌握了Rails控制台,並發現它可以快速測試我的類中的方法。 我知道我可以對我的模型進行更改
> reload!
抓住這些更新,但有時我會發現它似乎沒有重新加載我的最新代碼。 Rails是否在某處緩存代碼?
在一個非常簡單的偽示例中,我可能在第100行上有錯誤的代碼:
100: u = User.alll
在Rails控制台中,當我運行此方法時,我可能會收到類似於以下內容的錯誤:
NoMethodError: undefined method `alll' for User:Class ... on line 100
然后修改我的代碼,修復錯誤
100: u = User.all
然后重新加載:
> reload!
然后,當在這個類中調用具有正確代碼的方法時,它仍會說
NoMethodError: undefined method `alll' for User:Class ... on line 100
如果清楚,錯誤是固定的,並且違規行甚至不再在第100行。 有沒有辦法強制/硬重置“重新加載!” 命令?
我的猜測是你正在做的事情:
User
實例 someMethod
reload!
someMethod
並再次獲取錯誤 所以你在一個本身沒有重新加載的實例上調用該方法。 它的類已被重新加載,但實例已經在內存中 - 有bug和所有。
這至少是我的猜測(不是100%肯定)。
點是,如果你在reload!
后創建一個新實例reload!
並在新實例上調用您的方法,它應該停止抱怨。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.