如何在rakefile(task)Rails中包含关注点?

时间:2018-07-11 15:19:23

标签: ruby-on-rails task activesupport-concern

我有一个要在任务中使用的问题,我们称它为“ MyConcern”,我这样包含它

include MyConcern

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

  

NameError:未初始化的常量MyConcern

包括这样的文件,而不是上述方式:

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

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

  

NameError:未定义的局部变量或方法“ my_object”的   main:对象

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

我缺少任何要求吗? (在我的任务中,我仅包含上述文件)

1 个答案:

答案 0 :(得分:0)

我通过创建一个服务来使其工作,该服务包括关注文件,这样我就可以使用关注的对象。我仍然不确定这是否是正确的方法,但是可以。

在服务文件夹中 MyService.rb 中的代码。

class MyService.rb
 include MyConcern
 def initialize; end
 def execute
  #stuff I have in my concern (for instance *my_object*)
 end
end

在任务中,我照常使用服务。

MyService.new