2011-06-05 74 views
14

我有2个职位我想运行,他们依赖于我的rails应用程序中的模型。 我在名为Jobs的单独文件夹中添加了ruby文件,这些文件夹已添加到导轨项目中。script/runner in rails 3

每当我试着通过红宝石命令我碰到下面的错误来运行它们:这里

uninitialized constant Feedback (NameError).

的反馈是我用我的Rails应用程序的模型。

我的问题:因为我使用的作业实际上与rails 2的脚本/ runner命令兼容,Rails 3有没有其他选择?如果不是我如何编写ruby程序,而这些程序依赖于我在rails应用程序中使用的模型,而不会发生上面提到的错误。

回答

24

使用rails runner

$ rails -h 
Usage: rails COMMAND [ARGS] 
... 
runner  Run a piece of code in the application environment 

All commands can be run with -h for more information. 
3

的 “Rails 3的方式” 要做到这一点是使用:environment先决条件,它加载Rails环境耙。像这样:

task :name => :environment do |t| 
    # actions 
end 

在块中,您可以加载和执行作业。

如果你之前没有写过Rake脚本,here's a good tutorial。这很容易。