lambda consulting

rails runner への引数がプログラムへ渡ってしまう

May 19, 2015

Rails

Rails のアプリケーション環境でバッチ的に処理を実行したい場合に、rails runnerを使う。

% bin/rails runner your-program.rb

処理にパラメータ(引数)を与えたい場合は、

% bin/rails runner your-program.rb your-parameter

と、通常通り、プログラムファイルの後ろに指定し、プログラム内では、ARGV で取得すればいいのだが、production 環境で実行をする際に、問題が生じてしまった。

% bin/rails runner -e production your-program.rb your-parameter

上記のような指定だと、-e production も your-program.rb に渡ってしまい、ARGV の中に入ってしまう。

これを回避するためには、環境の指定を、下記のようにすればいい。

% RAILS_ENV=production bin/rails runner your-program.rb your-parameter