【问题标题】:Error when launching rails server - getting "uninitialized constant Devise::Models::Invitable (NameError)"启动 Rails 服务器时出错 - 获取“未初始化的常量 Devise::Models::Invitable (NameError)”
【发布时间】:2012-09-18 00:20:06
【问题描述】:

我是 Rails 新手,我正在努力学习这个发布前注册教程 - http://railsapps.github.com/tutorial-rails-prelaunch-signup.html

使用 $ rails 初始化 rails 服务器时,我收到以下错误消息:

Users/pv/.rvm/gems/ruby-1.9.3-p194@rails326/gems/devise-2.1.2/lib/devise/models.rb:97:in `const_get': 未初始化的常量 Devise:: Models::Invitable (NameError)

后面是一堆文件路径,比如:

from /Users/patrickvihtelic/.rvm/gems/ruby-1.9.3-p194@rails326/gems/devise-2.1.2/lib/devise/models.rb:97:in `block (2 levels) in devise'
from /Users/patrickvihtelic/.rvm/gems/ruby-1.9.3-p194@rails326/gems/devise-2.1.2/lib/devise/models.rb:92:in `each'
from /Users/patrickvihtelic/.rvm/gems/ruby-1.9.3-p194@rails326/gems/devise-2.1.2/lib/devise/models.rb:92:in `block in devise'
from /Users/patrickvihtelic/.rvm/gems/ruby-1.9.3-p194@rails326/gems/devise-2.1.2/lib/devise/models.rb:123:in `devise_modules_hook!'
from /Users/patrickvihtelic/.rvm/gems/ruby-1.9.3-p194@rails326/gems/devise-2.1.2/lib/devise/models.rb:90:in `devise'
from /Users/patrickvihtelic/code/rails-prelaunch-signup/app/models/user.rb:5:in `<class:User>'
from /Users/patrickvihtelic/code/rails-prelaunch-signup/app/models/user.rb:1:in `<top (required)>'
from /Users/patrickvihtelic/.rvm/gems/ruby-1.9.3-p194@rails326/gems/activesupport-3.2.8/lib/active_support/inflector/methods.rb:230:in `block in constantize'
from /Users/patrickvihtelic/.rvm/gems/ruby-1.9.3-p194@rails326/gems/activesupport-3.2.8/lib/active_support/inflector/methods.rb:229:in `each'
from /Users/patrickvihtelic/.rvm/gems/ruby-1.9.3-p194@rails326/gems/activesupport-3.2.8/lib/active_support/inflector/methods.rb:229:in `constantize'
from /Users/patrickvihtelic/.rvm/gems/ruby-1.9.3-p194@rails326/gems/devise-2.1.2/lib/devise.rb:256:in `get'

谁能给我一个提示或指出正确的方向吗?

谢谢!

拍拍

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    你需要添加:

    require 'devise_invitable'
    

    到 config/initializers/devise.rb。这样就可以消除这个错误了。

    【讨论】:

      【解决方案2】:

      您获得的“文件路径列表”称为“堆栈跟踪”。它从顶部开始,显示发生错误的行号和文件。随后的行是调用发生错误的函数的函数,然后是调用该函数的函数,依此类推。如果错误是由于输入错误造成的,这可以帮助您找出问题的根源。

      在这种情况下,您尝试调用 Devise 引擎,但它反对您使用的名称。在这种情况下,它位于 Devise 的模型模块中。查看该模块的the documentation,我发现没有定义可邀请的模块或类。你可能想看看this question

      【讨论】:

      • 我必须在设计中定义可邀请 - 最终解决了问题。谢谢
      • 你能解释一下你做了什么来解决这个问题吗?我现在遇到同样的问题,找不到解决办法。
      猜你喜欢
      • 2012-04-25
      • 2014-05-26
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多