我无法为我的生活获得加载到我正在构建的应用中的内容。我使用它来进行数据表的服务器端处理。
以防万一我弄乱了包含模块结构的东西,其中我有一个通用模块,其中包含一些由专用模块定义的东西,这些模块包含一般类模块。目的是在专用类中使用不同类型的数据中的定义,而不必重复一堆代码。
我还没有进入
错误:
ActionController::RoutingError (uninitialized constant MetatasksController::MetatasksDatatableModule):
app/controllers/metatasks_controller.rb:2:in `<class:MetatasksController>'
app/controllers/metatasks_controller.rb:1:in `<top (required)>'
我的控制器(/app/controllers/metatasks_controller.rb)有这个:
class MetatasksController < ApplicationController
include MetatasksDatatableModule
[...]
end
consern(/app/controllers/concerns/metatask_datatables_consern.rb)有这个:
module MetatasksDatatableModule
extend ActiveSupport::Concern
class MetatasksDatatable
include DatatableModule
[...]
end
end
通用数据表模块(/app/controllers/concerns/datatables_module.rb)具有:
module DatatableModule
included do
[...]
end
end
我的自动加载路径包含文件夹(针对相关性/隐私进行了编辑):
> rails r 'puts ActiveSupport::Dependencies.autoload_paths'
[...]
/home/<user>/sites/<appname>/app/controllers/concerns
[...]
答案 0 :(得分:1)
Rails很可能无法自动加载,因为文件名与模块名称不匹配,因此它不知道从哪里加载它们。
因此metatask_datatables_consern.rb
应该被称为metatasks_datatable_module.rb
而datatables_module.rb
应该是datatable_module.rb