ruby-on-rails - 如何在 rakefile(task) Rails 中包含关注点?
问题描述
我有一个要在任务中使用的问题,我们称之为“MyConcern”,我将其包含在内
include MyConcern
在那里,我有一个名为 my_object 的对象,运行任务时出现以下错误。
NameError:未初始化的常量 MyConcern
包括这样的文件而不是上述方式:
require File.dirname(__FILE__) + '/../../app/controllers/concerns/my_concern'
运行任务时出现以下错误:
NameError:未定义的局部变量或方法“my_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
推荐阅读
- html - 为什么 span with height: auto 和 display: inline-block parent of svg 的高度比它的 svg child 大?
- php - 是否可以将压缩文件夹从服务器(php)发送到前端(角度)?还是有其他方法可以做到
- json - 如何从 CQL 表中的 JSON 列中选择键作为列?
- java-9 - Java 9 反应式流。为什么需要处理器?
- reporting-services - 根据过滤列过滤/隐藏矩阵中的“空”行
- typescript - d3 在最后一个 x 轴项目上的打字稿填充空间中缩放?
- python - Mosestokenizer 问题:[WinError 2] 系统找不到指定的文件
- c++ - 即使我已经包含了某些标题,也没有找到它们。除了使用引号之外,我该如何解决这个问题?
- liferay-7 - 用自定义替换 top-head.jsp Liferay
- javascript - 在不修改原始数组的情况下将一个数组切片/拼接成另一个数组