【发布时间】:2019-11-28 18:19:33
【问题描述】:
我想在另一个任务中模拟命令RAILS_ENV=test rake db:migrate。
我不希望这种变量更改影响后续任务/bash 命令,因此“硬设置”环境变量不是一个选项。
我找不到如何使用Rake::Task['task_name'].invoke。
【问题讨论】:
标签: ruby-on-rails ruby rake rake-task
我想在另一个任务中模拟命令RAILS_ENV=test rake db:migrate。
我不希望这种变量更改影响后续任务/bash 命令,因此“硬设置”环境变量不是一个选项。
我找不到如何使用Rake::Task['task_name'].invoke。
【问题讨论】:
标签: ruby-on-rails ruby rake rake-task
这样的事情就可以了:
ENV["RAILS_ENV"] = "test"
Rake::Task['db:migrate'].invoke
从 Ruby 内部更改 ENV 不会影响父 shell - 它只是一个已经加载到 Ruby 中的副本。
【讨论】: