我正在研究ROR,顺便说一句,我使用bundle update
命令升级了我的捆绑包,我收到了捆绑包是最新的消息,但是当我尝试启动我的rails服务器rails s
时,它正在抛弃我错误:
/var/lib/gems/1.9.1/gems/devise-3.2.4/lib/devise/models.rb:88:in `const_get': uninitialized constant Devise::Models::TokenAuthenticatable (NameError)
请告诉我要解决这个问题需要做些什么。我已经做了很多研发,但没有得到任何答案。我用sudo apt-get install rails
而不是RVM安装了rails。我认为可以选择使用RVM降级rails版本
请帮忙。
答案 0 :(得分:7)
根据link:
TokenAuthenticatable
已从Devise中删除。因此,如果您在应用程序中使用它,则需要将其删除。
devise :database_authenticatable, :registerable,
- :recoverable, :rememberable, :token_authenticatable
:token_authenticatable
应该删除。
另请参阅此link。
如果它在本地工作,则可能意味着正在加载一个旧的gem - 确保你的gems不包含旧版本的设计,并且在你的Gemfile中请指定gem 'devise'
,只有没有特定的版本。
然后,要降级ruby版本,您需要在您的计算机中安装RVM,
请参考以下链接,使用它安装RVM和不同版本的ruby。然后,您可以为不同的项目使用适当的ruby版本。无需降级系统安装的ruby版本。此外,如果需要,您可以使用系统ruby版本。 (rvm use system
)
https://rvm.io/rubies/installing
希望有所帮助:)