获取 rails 控制台以处理多个 Gemfile

Getting rails console to work with multiple Gemfiles

我们目前正在从 Rails 4 迁移到 5,并且有两个 Gemfile(类似于 GitHub did it),Gemfile(Rails 4) 和 Gemfile_5 (Rails 5).

以下命令按预期工作:

bundle exec rails s
=> Booting WEBrick
=> Rails 4.2.11.12 LTS application starting in development on http://localhost:3000

BUNDLE_GEMFILE=Gemfile_5 bundle exec rails s
=> Booting WEBrick
=> Rails 5.0.7.1 application starting in development on http://localhost:8000
bundle exec rspec spec/...
# runs specs using Rails 4 gemset

BUNDLE_GEMFILE=Gemfile_5 bundle exec rspec spec/...
# runs specs using Rails 5 gemset
bundle exec rails --version
Rails 4.2.11

BUNDLE_GEMFILE=Gemfile_5 bundle exec rails --version
Rails 5.0.7.1

然而,当尝试 运行 consolerunner 时,它只会使用 Rails 4 gemset:

BUNDLE_GEMFILE=Gemfile_5 bundle exec rails c
Loading development environment (Rails 4.2.11.12 LTS)
BUNDLE_GEMFILE=Gemfile_5 bundle exec rails r "puts Rails.version"
4.2.11

我试过重新启动 Spring,但没有任何效果。我在这里错过了什么?

诀窍是完全禁用 Spring,而不是重新启动它:

DISABLE_SPRING=1 BUNDLE_GEMFILE=Gemfile_5 bundle exec rails console
Loading development environment (Rails 5.0.7.1)