Rails ターミナルからコードを実行する

概要

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"