ruby-on-rails - Ruby on Rails 6 加载模块
问题描述
我想知道在 rails 6 中使用具有命名空间的类的正确方法是什么。我有以下内容,但它不起作用并且我收到错误:
“未初始化的常量 ProductsController::Operations 你的意思是?ProductsController::Options”
#app/operations/create.rb
module Operations
class Create
def self.foo
...
end
end
end
#app/controllers/products_controller.rb
class ProductsController < ApplicationController
def create
Operations::Create.foo
end
end
你能帮我吗?
解决方案
您的模块应该在任何文件夹中。例如app/services/operations/create.rb
(任何名称都可以)与您拥有的相同内容:
module Operations
class Create
def self.foo
...
end
end
end
并调用它Operations::Create.foo
。
还要确保你重新启动 spring spring stop
。
推荐阅读
- java - 有没有办法通过使用 nextLine() 读取空行来退出 while 循环?(爪哇)
- chart.js - Chart.js 在极点内部或上方绘制网格线
- elasticsearch - 嵌套聚合elasticsearch,访问父字段进行子聚合
- mysql - 获取最大总和为 3 列的行 - Mysql
- python - 集合的 Python 运行时。计数器相等
- python - Docker远程上的Pycharm远程解释器:[Errno 2]没有这样的文件或目录
- security - 加载的 SWF 不会在空中执行其功能
- c++ - C++ - 转换浮点数组的 std::string
- javascript - 我正在尝试使用 javascript 和 node.js 从 json 变量中获取所有数据
- ios - 谷歌地图中标记的移动