执行“bundle exec rails runner”时,如何指定应用程序的目录?

时间:2016-03-04 14:56:10

标签: ruby-on-rails ruby bash bundler

执行此命令时:

var submitted = false;
window.onbeforeunload = function() {
   if (!submitted) {
       return "Are you sure you want to leave this page, your test will not be saved?";
   }
};
document.getElementById('someForm').onsubmit = function() {
    submitted = true;
    // submit the form using ajax
};

它返回:

/usr/local/bin/bundle exec rails runner -e production "load 'job_alerta_validacao.rb'"

如何直接在命令中设置应用程序的位置,而无需使用“cd”命令创建脚本?

1 个答案:

答案 0 :(得分:1)

使用bundler的最常用方法是cd到包含Gemfile的目录。这也是最强大的方法,因为其他一些宝石可能会假设工作目录是Rails项目的根目录。

如果您只是不想更改当前shell的工作目录,则在子shell中更改cd

(cd /some/directory; /usr/local/bin/bundle exec rails runner -e production "load 'job_alerta_validacao.rb'")

如果你真的想通过Bundler执行一些工作目录而不是带有Gemfile的目录,请告诉bundler在哪里找到带有BUNDLE_GEMFILE环境变量的Gemfile:

BUNDLE_GEMFILE=/some/directory/Gemfile /usr/local/bin/bundle exec rails runner -e production "load 'job_alerta_validacao.rb'"