Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否仅为rake任务加载部分环境?_Ruby On Rails_Ruby On Rails 3.1_Rake_Resque_Rake Task - Fatal编程技术网

Ruby on rails 是否仅为rake任务加载部分环境?

Ruby on rails 是否仅为rake任务加载部分环境?,ruby-on-rails,ruby-on-rails-3.1,rake,resque,rake-task,Ruby On Rails,Ruby On Rails 3.1,Rake,Resque,Rake Task,我看过很多关于为一项任务加载整个Rails环境的文章。但是,我担心这是不必要的,因为我的任务只使用两个模型(加上'resque'和'resque/scheduler')。如何仅为任务加载环境的某些部分 而且,这似乎是一样的,但它变老了,似乎没有人充分回答它。。。我现在会提前问,请有人给出代码,而不仅仅是解释。您可能不会喜欢这个答案,但是 您不应该只加载环境的一部分。任何解决办法都是丑陋、令人不快和脆弱的。它更快、更容易、更标准,只需要您的整个环境。可能你提出的任何解决方案都只会使任务的启动时间缩

我看过很多关于为一项任务加载整个Rails环境的文章。但是,我担心这是不必要的,因为我的任务只使用两个模型(加上'resque'和'resque/scheduler')。如何仅为任务加载环境的某些部分


而且,这似乎是一样的,但它变老了,似乎没有人充分回答它。。。我现在会提前问,请有人给出代码,而不仅仅是解释。

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

您不应该只加载环境的一部分。任何解决办法都是丑陋、令人不快和脆弱的。它更快、更容易、更标准,只需要您的整个环境。可能你提出的任何解决方案都只会使任务的启动时间缩短一到两秒,而且你投入了多少时间和精力来实现它是不值得的

然而,如果您确实想这样做,如果您只加载ActiveRecord模型,则可以在执行任务之前尝试以下操作:

require 'active_record'
require './app/models/my_model.rb'
您可能会遇到一系列关于未定义方法和缺少常量的错误。您可以手动更正其中的每一个,需要一个接一个的文件来更正问题,或者只是接受我的建议并要求您的环境。(提示:只需要您的环境即可。)