Shi*_*wal 5 ruby ruby-on-rails
我正在研究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)
Run Code Online (Sandbox Code Playgroud)
请告诉我我要做些什么来解决这个问题.我已经做了很多研发,但没有得到任何答案.我安装了sudo apt-get install rails没有RVM的rails .我认为可以选择使用RVM降级rails版本.
请帮忙.
根据这个链接:
TokenAuthenticatable已被从Devise中删除.因此,如果您在应用程序中使用它,则需要将其删除.
devise :database_authenticatable, :registerable,
- :recoverable, :rememberable, :token_authenticatable
Run Code Online (Sandbox Code Playgroud)
:token_authenticatable 应该删除.
请参阅此链接.
如果它在本地工作,则可能意味着正在加载旧的gem - 确保您的gem不包含旧版本的设计,并且在您的Gemfile中请gem 'devise'仅指定没有特定版本.
然后,为了降级ruby版本,你需要在你的机器上安装RVM,
请参考以下链接,使用它安装RVM和不同版本的ruby.然后,您可以为不同的项目使用适当的ruby版本.无需降级系统安装的ruby版本.此外,如果需要,您可以使用系统ruby版本.(rvm use system)
https://rvm.io/rubies/installing
希望能帮助到你 :)