我有一个ruby on rails
api_app
和和一个test_app
练习api_app
. 虽然发展模式,我想运行,从api_app
,rake任务叫做match:reset
那就是在test_app
。我正在尝试使用位于api_app
#!/usr/bin/env ruby
require 'tty-command'
cmd = TTY::Command.new
Dir.chdir('../test_app') do
cmd.run 'run rake match:reset'
end
当我这样做时,我收到以下错误
Your Ruby version is 2.4.4, but your Gemfile specified 2.4.1 (Bundler::RubyVersionMismatch)
我试过添加,cmd.run 'rvm use 2.4.1'
但这不起作用。如何设置正确的环境以使其有效?
我无法使用 ruby 命令文件进行此操作。我认为这样做的原因是该文件是使用api_ppp
目录中的ruby 运行的,因此您无法更改为另一个 ruby。我最终做的是使用 bash 文件:
#!/bin/bash
cd ../test_app
source $HOME/.rvm/scripts/rvm
rvm use 2.4.4@test_app_2.4.4
BUNDLE_GEMFILE=../test_lab/Gemfile bundle exec rake -f ../test_app/Rakefile match:reset
我很高兴考虑使用 ruby 命令文件的答案,只要答案已经过测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句