Heroku использует старую версию Ruby при запуске `bundle install`
Я пытаюсь запустить приложение Rails на Ruby2.7.1 на Heroku. Все работало нормально, затем я что-то изменил в своем Gemfile, чтобы использовать нумерованные параметры Ruby2.7, и теперь развертывание завершается сбоем с таким сообщением об ошибке:
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.
Я предполагаю, что при запуске используется версия Ruby < 2.7 bundle install
. Однако само приложение отлично работает на Ruby2.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, не соблюдающим версию Ruby, установленную в Gemfile или.ruby-version, что не является проблемой для меня, только во время bundle install
кажется, по какой-то причине он использует другую версию Ruby...
Есть ли способ отладить это дальше или заставить Ruby2.7 даже во время bundle install
по развертыванию?