Passion make things more better

Ruby on Rails / React.js / Swift / AWS / Docker

Rails runnerを使ってスクリプトを実行する

Railsを使っている時に、普通の処理とは別だけどもRailsの機能も使いつつ単独のスクリプト実行したい(バッチ処理とか、アプデに伴う諸々のデータの更新など)、と思ったことがある人は多いのではないでしょうか?そんな時に役立つのがRails runnerです。

はじめに

railsのルートディレクトリ直下にscriptsというフォルダを用意し、その中に実行したいファイルを作成します。 今回は20160322_passion.rbというファイルを作成します。内容は以下です。この中のスクリプトRailsの機能も使用可能です。

class Passion
  def self.execute
    put 'Do you have passion?'
  end
end

Passion.execute

スクリプトを実行する

作成したスクリプトは、以下のコマンドで実行します。

~ bundle exec rails runner scripts/20160322_passion.rb

環境毎に実行したい時

stagingやproduction環境下でも実行したい場合があるでしょう。その場合は以下のように-eオプションをつけて実行します。

bundle exec rails runner -e environment_here scripts/20160322_passion.rb

参考