Heroku在运行“捆绑安装”时使用较旧的Ruby版本

时间:2020-08-02 22:23:15

标签: ruby-on-rails ruby heroku ruby-2.7

我正在尝试在Heroku的Ruby 2.7.1上运行Rails应用程序。一切正常,然后我更改了Gemfile中的某些内容以使用Ruby 2.7's numbered parameters,现在部署失败,并显示以下错误消息:

remote: -----> Build succeeded!
remote: -----> Ruby app detected
remote: -----> Installing bundler 2.0.2
remote: -----> Removing BUNDLED WITH version in the Gemfile.lock
remote: -----> Compiling Ruby/Rails
remote:
remote:  !
remote:  !     There was an error parsing your Gemfile, we cannot continue
remote:  !
remote:  !     [!] There was an error parsing `Gemfile`: Undefined local variable or method `_1' for Gemfile. Bundler cannot continue.
remote:  !
remote:  !     #  from /tmp/build_6681cf5c/Gemfile:22
remote:  !     #  -------------------------------------------
remote:  !     #  dependencies.any? { _1.name == gem_name }
remote:  !     #  -------------------------------------------
remote:  !     . Bundler cannot continue.

它在本地运行良好,我在其他一些Rails应用程序中也使用了相同的代码,部署从来没有问题。

由于错误Undefined local variable or method '_1' for Gemfile.,我假设运行bundle install时使用的是Ruby版本<2.7。 该应用程序本身可以在Ruby 2.7.1上正常运行:

$ heroku run "ruby -v"
Running ruby -v on ⬢ myapp... up, run.7979 (Free)
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

SO上还有其他类似的问题,但是它们都处理了Heroku,不尊重Gemfile或.ruby-version中设置的Ruby版本,这对我来说不是问题,仅在bundle install期间出于某种原因似乎使用了不同的Ruby版本...

有没有办法进一步调试它,甚至在部署期间bundle install期间强制使用Ruby 2.7?

0 个答案:

没有答案