Из этих подходов, упомянутых ранее, ни один не казался чистым и идеальным, как вы ожидаете, что будет запускаться автономный скрипт (без оценки или передачи через <перенаправление), но, наконец, это работает идеально для меня:
(для Rails 3)
Вставьте вверху вашего скрипта:
#!/usr/bin/env ruby
APP_PATH = File.expand_path(appdir = '/srv/staging/strat/fundmgr/config/application', __FILE__)
require File.expand_path(appdir + '/../boot', __FILE__)
require APP_PATH
# set Rails.env here if desired
Rails.application.require_environment!
# your code here...
Конечно, укажите свой собственный путь к приложению Rails в строке APP_PATH.
Таким образом, я могу избежать необходимости вводить какие-либо интерактивные элементыirb
или rails c
и могу протестировать свой script.rb из приглашения оболочки, например, до. планирование его в crontab.
Он также плавно поддерживает параметры командной строки и сводит к минимуму уровни оберток, прежде чем перейти к вашему коду.
КРЕДИТ (также показан пример Rails 2)
http://zerowidth.com/2011/03/18/standalone-script-runner-bin-scripts-in-rails.html