3
我加載類從字符串這樣強制類加載和卸載(ROR)
Kernel.const_get(some_class_name).new
它的工作原理,但什麼是做這種正確的方法是什麼?
更重要的是,有什麼辦法可以卸載一類嗎?我已經嘗試過
Object.send(:remove_const, some_class_name)
但是這與之前的班級加載時不一樣。
注:與this有關。
我加載類從字符串這樣強制類加載和卸載(ROR)
Kernel.const_get(some_class_name).new
它的工作原理,但什麼是做這種正確的方法是什麼?
更重要的是,有什麼辦法可以卸載一類嗎?我已經嘗試過
Object.send(:remove_const, some_class_name)
但是這與之前的班級加載時不一樣。
注:與this有關。
既然您標記使用Rails的問題,那麼你可以做
some_class_name.constantize
例
"User".constantize
# => User
remove_const
的作品,但是你需要從其中常量定義對象空間調用它。此外,請記住傳遞一個符號作爲常量名稱。
例
Object.send(:remove_const, :Foo)
謝謝!關於remove_const:迴應基本上是紅寶石期待'.rb'來定義我已經消除的常量。換句話說,它的工作,但沒有重置系統之前,類加載。 –
那麼如何在定義常量之前重置系統? –