【问题标题】:What does uninitialized constant mean?未初始化的常量是什么意思?
【发布时间】:2013-09-27 18:20:12
【问题描述】:

我得到了错误uninitialized constant SessionsController 我已经搜索过,并且只能参考NameError 找到这个错误的解释有谁知道这个错误是什么意思?

【问题讨论】:

  • 这正是它所说的,该名称的变量未初始化。它将它称为常量,因为它是大写的。
  • 你能详细说明一下吗? SessionsController 应该大写。
  • 对。但它还没有被定义。这是任何尝试访问未定义的大写变量的标准错误消息。
  • 如果您认为它应该已被定义,您将不得不分享一些代码并声明您为什么认为会这样。
  • 没关系,我还有一个专门针对解决错误的问题。我只是想知道错误消息的具体含义,以便更好地了解发生了什么。 stackoverflow.com/questions/19057217/…

标签: ruby-on-rails uninitialized-constant


【解决方案1】:

这是Name Error 处理未初始化变量的两个“子类型”之一。 “未初始化常量”的语言是由于SessionsController 是大写的。两种类型如下图所示:

new-host-3:bot palfvin$ irb
2.0.0p247 :001 > foobar
NameError: undefined local variable or method `foobar' for main:Object
    from (irb):1
    from /Users/palfvin/.rvm/rubies/ruby-2.0.0-p247/bin/irb:16:in `<main>'
2.0.0p247 :002 > Foobar
NameError: uninitialized constant Foobar
    from (irb):2
    from /Users/palfvin/.rvm/rubies/ruby-2.0.0-p247/bin/irb:16:in `<main>'
2.0.0p247 :003 > 

【讨论】:

    【解决方案2】:

    这意味着您正在尝试使用尚未定义的类或模块。可能是因为你忘了要求他们。

    确保此类SessionsController 已在您的sessions_controller.rb 中声明。

    阅读更多:http://ruby.about.com/od/faqs/qt/Nameerror-Uninitialized-Constant-Object-Something.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      相关资源
      最近更新 更多