我工作的this pretty thorny problem和決定,我也許能夠動態地創建,通過這樣做,從StandardError的繼承的類:Constantize提出了未初始化的常量錯誤
something = "JustForBelow"
error_class = "#{something}Error".constantize
error_class = StandardError.new
但我發現了一個很奇怪的錯誤(在我看來),這是:
Uninitialized constant JustForBelowError
我不是在那裏初始化它嗎?
(基本上)同樣的錯誤出現,當我試試這個:
StandardError.const_get "#{something}Error"
# => NameError: uninitialized constant StandardError::JustForBelowClass
這感覺真是奇怪,因爲一),這些都是超級隨機的名字;沒有任何衝突,並且b)我很確定我已經像之前的第一個例子那樣使用了constantize。任何想法出了什麼問題?
那麼,有沒有辦法動態地定義常量?如在中,不知道準確的字符串將取代JustForBelowError,從插入的字符串初始化該類? – Sasha
等一下。剛纔看到了上述情況,似乎回答了後續情況 – Sasha