【发布时间】:2017-05-24 12:09:55
【问题描述】:
我有一个嵌套模块设置为基本辅助方法,它没有包含在使用引擎的应用程序中。
在 lib/mol/blog/blog.rb 中
require "mol/blog/engine"
module Mol
module Blog
module Categories
def self.included(base)
base.helper_method :categories
end
def categories
Mol::Cms::Category.all
end
end
end
end
在引擎的规范/虚拟应用程序控制器中
class ApplicationController < ActionController::Base
protect_from_forgery
include Mol::Blog::Categories
end
这工作正常,类别按预期显示。但是,当我尝试在不同的应用程序中使用引擎时,没有包含类别模块。
在应用的应用控制器中
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
include Mol::Blog::Categories
end
在rails控制台中,错误为uninitialized constant Mol::Blog::Category (NameError)
Mol::Blog 已定义,没有错误或任何东西。为什么无法识别类别模块?
【问题讨论】:
-
你确定错误是
uninitialized constant Mol::Blog::Category (NameError)?。不是uninitialized constant Mol::Blog::Categories (NameError) -
是的,它是未初始化的常量 Mol::Blog::Categories (NameError),对不起我的错误
标签: ruby-on-rails rails-engines