概要
Railsでターミナルからコードを実行するには、rails runnerコマンドを使って、バッチ処理の実行を行います。
例1. Rubyスクリプトを実行する
Fruitsクラスのクラスメソッドnameを実行する処理が記述されたfruits.rbを実行します。
次のコードを lib/tasks フォルダに格納します。
class Fruits def self.name "maple" end end p Fruits.name
ターミナルからrails runnerコマンドでRubyスクリプトを実行します。
$ rails runner lib/tasks/fruits.rb "maple"
例2. クラスメソッドを実行する
Fruitsクラスのクラスメソッドnameを実行します。
次のコードを /lib/tasks フォルダに格納します。
class Fruits def self.name p "maple" end end
次のコードを/config/application.rb に記述し、
module SampleApp class Application < Rails::Application config.autoload_paths += Dir["#{config.root}/lib/tasks"] end end
/lib/tasks/パスをrailsが読み込むように設定します。
最後にターミナルからrails runnerコマンドでクラスメソッドを実行します。
$ rails runner Fruits.name "maple"