我需要运行一些脚本,我想从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相同,也可能不同)应用程序的其余部分使用。
答案 0 :(得分:8)
从您的脚本中,您需要在应用程序中要求文件config/environment.rb
。请注意,这正是DJ在这里所做的。在Rails 3中也是如此。
请注意,如果您将脚本转换为Rake任务(您可以将其放在Rakefile
或*.rake
中自己的lib/tasks
文件中),则可以让您的任务依赖于在Rails定义的任务environment
上。
task :mytask => :environment do
# custom stuff
end