如何解决Ruby-on-Rails:无法设置正确的Ruby版本
亲爱的社区。 p>
这是一个奇怪的人,我自己也无法弄清楚。
我即将将Ruby-on-Rails应用程序部署到生产服务器。我喜欢像您一样在开发和生产之间保持所有版本的一致性。
在我的Gemfile中,我将Ruby版本设置为2.7.1(正确),并且在开发中我安装了2.7.1,并将该版本本地用于该特定项目。一切正常! -这是条目:
宝石文件
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.7.1'
# Bundle edge Rails instead: gem 'rails',github: 'rails/rails'
gem 'rails','~> 6.0.3','>= 6.0.3.2'
...
问题:
在生产中,我安装并使用(通过rbenv)Ruby 2.7.1。并且我确认该版本已安装并正在使用中!但是,当它尝试迁移我的数据库或为此执行任何其他任务时,它会输出以下内容
Your Ruby version is 2.7.0,but your Gemfile specified 2.7.1
我什至没有安装2.7.0。因此,出于此原因,我在生产环境中编辑了Gemfile来运行测试。为了进行测试,我将红宝石版本设置为2.7.0,然后运行另一个启动机架的命令。现在的消息是:
Your Ruby version is 2.7.1,but your Gemfile specified 2.7.0
正在发生什么?!我以前从未见过或看到过类似的问题。任何帮助深表感谢!谢谢!
以下是环境详细信息:
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
$ rails -v
Rails 6.0.3.2
$ bundle -v
Bundler version 2.1.4
解决方法
我发现最好的解决方案是从您的ruby版本管理器中卸载所有版本的ruby(不熟悉rbenv,但是您应该能够列出所有已安装的版本,然后逐个卸载您不需要的版本,直到仅如果需要多个版本,则最好设置一个脚本,该脚本可让您快速切换或设置隔离的开发环境(主要是虚拟机),从而可以确保它仅具有所需的版本。
之后,它可能会正常工作,或者您将显示一条错误消息,可能会帮助您确定问题的根本原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。