启动rails服务器时出错 - 获取"未初始化的常量Devise :: Models :: Invitable(NameError)"

pvs*_*ak5 6 ruby ruby-on-rails

我是rails的新手,我正在尝试跟随这个prelaunch注册教程 - http://railsapps.github.com/tutorial-rails-prelaunch-signup.html

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

Users/pv/.rvm/gems/ruby-1.9.3-p194@rails326/gems/devise-2.1.2/lib/devise/models.rb:97:in,const_get':uninitialized constant 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'
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我一个提示或指出我正确的方向?

谢谢!

Phi*_*ek_ 6

你需要添加:

require 'devise_invitable'
Run Code Online (Sandbox Code Playgroud)

to config/initializers/devise.rb.这将摆脱这个错误.


pjm*_*rse 1

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

在本例中,您尝试调用 Devise 引擎,但它反对您使用的名称。在本例中,它位于 Devise 的模型模块中。查看该模块的文档,我发现没有定义 Invitable 模块或类。您可能想看看这个问题

  • 你能解释一下你做了什么来解决这个问题吗?我现在遇到同样的问题,找不到解决方案。 (2认同)