Как в Rails запускать скрипты, которые загружают среду rails? - PullRequest
10 голосов
/ 22 ноября 2010

У меня есть несколько скриптов, которые мне нужно запустить, и я хочу получить доступ ко всей среде из моего приложения 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'

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

1 Ответ

8 голосов
/ 22 ноября 2010

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

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

task :mytask => :environment do
  # custom stuff
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...