如何在 rakefile(task) Rails 中包含一个问题?

How to include a concern in rakefile(task) Rails?

我有一个问题想在任务中使用我们称之为 'MyConcern',我这样包含它

include MyConcern

在那里,我有一个名为 my_object 的对象,当 运行 任务时出现以下错误。

NameError: uninitialized constant MyConcern

像这样包含文件而不是上面的方式:

require File.dirname(__FILE__) + '/../../app/controllers/concerns/my_concern'

当 运行 任务时出现以下错误:

NameError: undefined local variable or method `my_object' for main:Object

顺便说一句,对象确实有一个值。

我是否缺少任何要求? (在我的任务中我只包括上面提到的文件)

我通过创建服务使其工作,该服务包含关注文件,这样我就可以使用关注的对象。我仍然不确定这样做是否正确,但它确实有效。

在服务文件夹 MyService.rb里面有代码。

class MyService
 include MyConcern

 def initialize; end
 def execute
  #stuff I have in my concern (for instance *my_object*)
 end
end

在任务中我只是照常使用服务。

MyService.new