是否可以在rake任务中包含模块并使其方法可用于rails app中的任务?

在我们的rails 3.2.12应用程序中,在lib/tasks下创建了一个rake task lib/tasksrake task需要调用一个方法find_config() ,该方法驻留在另一个rails模块authentify (模块不在/ lib /下)。 我们include Authentifyrake task include Authentify并使方法find_config()可以在rake任务中调用吗?

以下是我们在rake task要做的rake task

 include Authentify config = Authentify::find_config() 

感谢您的评论。

  require 'modules/module_name' include ModuleName namespace :rake_name do desc "description of rake task" task example_task: :environment do result = ModuleName::method_name() end #end task end 

这对我有用。 由于您的模块不在/ lib中,因此您可能需要编辑它的所需方式。 但它应该工作。 希望能帮助到你。

如何在Rake任务中要求Rails服务/模块?

我有同样的问题,并设法通过要求rake任务中的rails文件来解决它。

我在文件lib/tasks/a_task.rake定义了一个名为give_something的rake任务。

在该任务中,我需要从模块AService调用函数give_something ,该模块位于文件app/services/a_service.rb

rake任务定义如下:

 namespace :a_namespace do desc "give something to a list of users" task give_something: :environment do AService.give_something(something, users) end end 

我收到了错误: uninitialized constant AService

为了解决这个问题,我不得不要求模块不在文件a_task.rake的开头,而是在rake任务中:

 namespace :a_namespace do desc "give something to a list of users" task give_something: :environment do require 'services/a_service' # <-- HERE! AService.give_something(something, users) end end