首页 > 解决方案 > 如何在 rakefile(task) Rails 中包含关注点?

问题描述

我有一个要在任务中使用的问题,我们称之为“MyConcern”,我将其包含在内

include MyConcern

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

NameError:未初始化的常量 MyConcern

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

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

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

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

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

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

标签: ruby-on-railstaskactivesupport-concern

解决方案


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

在其中的服务文件夹 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

推荐阅读