В Rails, как запускать скрипты, загружающие среду рельсов?

У меня есть некоторые сценарии, которые мне нужно запустить, чтобы получить доступ к полной среде из моего приложения rails.

Я знаю, что раньше использовал script/runner в Rails 2.3.

Но я также использовал "delay_job", который загружает среду рельсов (2.3):

#!/usr/bin/env ruby

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command'

script Теперь я работаю, вытаскивая данные из очереди сообщений, а затем хочу, чтобы она использовала активную запись и мои модели для вставки этих данных в базу данных протоколирования (которая может быть или не быть такой же, как DB, который использует остальная часть приложения.

Ответ 1

Из вашего script вам потребуется файл config/environment.rb в вашем приложении. Обратите внимание, что это именно то, что здесь делает DJ. Это верно и в Rails 3.

Обратите внимание, что если вы превратите свой script в задачу Rake (которую вы можете вставить в Rakefile или в свой собственный *.rake файл в lib/tasks), вы можете просто зависеть от своей задачи от Rails- заданная задача environment.

task :mytask => :environment do
  # custom stuff
end