Ruby on Rails捆绑降级

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版本.
请帮忙.

Raj*_*tan 7

根据这个链接:

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)

http://rvm.io/rvm/install

https://rvm.io/rubies/installing

http://rvm.io/rvm/basics

希望能帮助到你 :)