在Rails中,如何运行加载rails环境的脚本?

Kev*_*ell 10 activerecord ruby-on-rails

我有一些我需要运行的脚本,我想从我的rails应用程序访问完整的环境.

我知道我script/runner以前在Rails 2.3中使用过.

但是我也使用了'delay_job'来加载这样的rails环境(2.3代码):

#!/usr/bin/env ruby

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command'
Run Code Online (Sandbox Code Playgroud)

我正在处理的脚本现在从消息队列中提取数据,然后我希望它使用活动记录和我的模型将该数据插入到日志数据库中(可能与其他数据库的数据库相同或不同)该应用程序使用.

yfe*_*lum 8

从您的脚本中,您需要config/environment.rb在应用程序中要求该文件.请注意,这正是DJ在这里所做的.在Rails 3中也是如此.

请注意,如果您将脚本转换为Rake任务(您可以将其放入Rakefile或放在自己的*.rake文件中lib/tasks),您可以简单地让您的任务依赖于Rails定义的任务environment.

task :mytask => :environment do
  # custom stuff
end
Run Code Online (Sandbox Code Playgroud)