【问题标题】:Ruby-on-Rails: Cannot set correct Ruby VersionRuby-on-Rails:无法设置正确的 Ruby 版本
【发布时间】:2020-10-12 00:46:54
【问题描述】:

最亲爱的社区。​​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 来运行测试。出于测试的目的,我将 ruby​​ 版本设置为 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

【问题讨论】:

  • 能否请您再次检查Gemfile.lock 文件
  • @Harikrishnan - 我昨天也删除了锁定文件 - 不走运。不管怎样,我最终还是上床睡觉了,因为我不能再被打扰了。今天我登录,它可以正常工作。中间没碰过。很奇怪。我猜服务器也需要休息一下?! ??????

标签: ruby-on-rails ruby ubuntu gemfile


【解决方案1】:

我发现最好的解决方案是从您的 ruby​​ 版本管理器中卸载所有版本的 ruby​​(不熟悉 rbenv,但您应该能够列出所有已安装的版本,然后一一卸载您不需要的版本,直到你需要的那个仍然存在。如果你需要多个版本,最好设置一个脚本,让你快速切换或设置隔离的开发环境(基本上是虚拟机),这样你就可以确定它只有它需要的版本。

之后,它会正常工作,或者您会收到一条错误消息,可能有助于确定问题的根本原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多