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

时间:2010-11-22 17:28:50

标签: ruby-on-rails activerecord

我需要运行一些脚本,我想从rails应用程序访问整个环境。

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

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

#!/usr/bin/env ruby

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

我正在处理的脚本现在将数据从消息队列中拉出来,然后我希望它使用活动记录和我的模型将该数据插入到日志数据库中(可能与DB相同,也可能不同)应用程序的其余部分使用。

1 个答案:

答案 0 :(得分:8)

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

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

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