只为rake任务加载部分环境?

时间:2012-03-19 22:43:28

标签: ruby-on-rails ruby-on-rails-3.1 rake resque rake-task

我见过bunch篇关于为任务加载整个Rails环境的文章。但是,我担心这是不必要的,因为我只使用两个模型来完成我的任务(加上'resque'和'resque / scheduler')。我怎样才能为我的任务加载环境的某些部分?

此外,这question似乎是相同的,但它已经老了,似乎没有人足够回答它...我现在提前问,有人请给代码而不是只是一个解释。

1 个答案:

答案 0 :(得分:2)

你可能不会喜欢这个答案,但是......

您不应仅加载部分环境。任何解决方法都将是丑陋,令人不快和脆弱的。只需要整个环境,它就更快,更容易,更标准。可能你提出的任何解决方案只会在任务的启动时间内减少一两秒钟,而且你投入的时间和精力投入到它上面是不值得的。

然而,如果你真的想这样做,如果你只是加载ActiveRecord模型,你可以在任务之前尝试这样的事情:

require 'active_record'
require './app/models/my_model.rb'

你可能会遇到一些关于未定义方法和缺少常量的错误。您可以手动更正其中的每一个,逐个要求文件来纠正问题,或者只是接受我的建议并要求您的环境。 (提示:只需要你的环境。)