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