簡體   English   中英

紅寶石模塊NameError:未初始化的常量錯誤

[英]ruby module NameError: uninitialized constant error

我正在嘗試創建一個gem,但是當嘗試在測試中加載模塊時,出現以下錯誤。 我使用“可配置的Ruby gems:自定義錯誤消息和測試 ”來設置用戶的環境變量,而這正是大多數代碼的來源。

  1) Msg91sms::Configuration with configuration block returns the correct authkey
     Failure/Error: raise Errors::Configuration, "Msg94 auth key missing!" unless @authkey

     NameError:
       uninitialized constant Msg91sms::Configuration::Errors
     # ./lib/msg91sms/configuration.rb:10:in `authkey'
     # ./spec/msg91sms/configuration_spec.rb:7:in `block (3 levels) in <top (required)>'

但根據文件夾結構以及所有內容,應該為Msg91sms::Errors::Configuration 即使所有測試由於模塊加載不正確而失敗,我也只放置了一個。

可以在這里找到具有該錯誤的gem: https//github.com/flyingboy007/msg91sms/tree/development

bundle exec rspec將引發所有錯誤。

應該是命名或加載不正確的內容。 但我不知道。

在遵循@sergio的回答之后,我現在收到此錯誤:

  1) Msg91sms::Configuration with configuration block returns the correct authkey
     Failure/Error: raise ::Msg91sms::Errors::Configuration, "Msg91 auth key missing!" unless @authkey

     NameError:
       uninitialized constant Msg91sms::Errors
     # ./lib/msg91sms/configuration.rb:10:in `authkey'
     # ./spec/msg91sms/configuration_spec.rb:7:in `block (3 levels) in <top (required)>'

有人可以告訴我這里做錯了什么嗎?

raise Errors::Configuration, "Msg94 auth key missing!" unless @authkey

使用完全限定的名稱來幫助Ruby查找類。

raise ::Msg91sms::Errors::Configuration, "Msg94 auth key missing!" unless @authkey

文件夾結構類似於Errors :: Configuration,但錯誤顯示類似於Configuration :: Errors..Do不知道為什么。

它正在嘗試在Msg91sms::Configuration (此時的當前作用域)中找到Errors::Configuration 但是由於沒有Msg91sms::Configuration::Errors ,因此該消息失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM