RubyスタンドアロンスクリプトのRoR環境
-
22-07-2019 - |
質問
RoR環境を使用する必要があるスタンドアロンのrubyスクリプトを実行したい。具体的には、ActionMailerとActiveRecordを拡張するモデルが必要です。また、database.ymlからデータベース設定を読み取る必要があります。 どうすればいいですか?
解決
最も簡単な方法は、スクリプトのシェバンを次のように変更することです:
#!/usr/bin/ruby
to
#!/path/to/your/rails/script/runner
Et voil&#224 ;、スクリプトは完全なレール環境がロードされた状態で実行されます。スクリプトを ./ my_script -e production
として実行して、実稼働データベースで実行することもできます。
他のヒント
このスレッドを確認してください: Railsを使用するRubyタスクを実行する方法モデル?
本質的には次のように要約されます:
require "#{ENV['RAILS_ROOT']}/config/environment.rb"
楽しんでください!
これを行う最善の方法は、それをすくいタスクにすることだと思います。
# lib/tasks/mystuff.rake
desc 'do my stuff'
task :my_stuff => [:environment] do
# do my stuff
end
[:environment]スタンザはRails環境をロードします。
所属していません StackOverflow