我想运行一个独立的ruby脚本,我需要使用我的RoR环境。具体来说,我需要扩展ActionMailer和ActiveRecord的模型。我还需要从database.yml中读取数据库配置。 我该怎么做呢?
答案 0 :(得分:9)
最简单的方法是更改脚本的shebang:
#!/usr/bin/ruby
到
#!/path/to/your/rails/script/runner
Etvoilà,您的脚本将在加载完整的rails环境的情况下运行。您还可以将脚本作为./my_script -e production
运行,以使其与生产数据库一起运行。
答案 1 :(得分:0)
查看此主题: How do I run Ruby tasks that use my Rails models?
基本上归结为:
require "#{ENV['RAILS_ROOT']}/config/environment.rb"
玩得开心!
答案 2 :(得分:0)
我认为最好的办法是让它成为一项佣金任务。
# lib/tasks/mystuff.rake
desc 'do my stuff'
task :my_stuff => [:environment] do
# do my stuff
end
[:environment]节加载rails环境。