我有一些需要运行的脚本,我想从 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'
我正在处理的脚本现在从消息队列中提取数据,然后我希望它使用事件记录和我的模型将该数据插入到日志记录数据库中(这可能与其他数据库相同,也可能不同)该应用程序使用。
最佳答案
从您的脚本中,您需要需要文件 config/environment.rb
在您的应用程序中。请注意,这正是 DJ 在这里所做的。在 Rails 3 中也是如此。
注意,如果你把你的脚本变成一个 Rake 任务(你可以把它放在 Rakefile
或你自己的 *.rake
文件中 lib/tasks
),你可以简单地让你的任务依赖于 Rails 定义的任务 environment
.
task :mytask => :environment do
# custom stuff
end
关于ruby-on-rails - 在 Rails 中,如何运行加载 rails 环境的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4248278/