我正在尝试实现一个 HomePresenter,以便在我的 Pages Controller 的主页操作中使用:
# app/controllers/pages_controller.rb
class PagesController < ApplicationController
def home
@presenter = Pages::HomePresenter.new(current_user)
end
...
end
# app/presenters/pages/home_presenter.rb
module Pages
class HomePresenter
def initialize(user)
@user = user
end
...
end
end
我的演示者规范没有错误地通过,但是当我运行服务器并访问 Chrome 中的主页时,我得到了这个:
uninitialized constant ActionController::Caching::Pages::HomePresenter
对于我的应用程序中的其他两个模型,我使用的 IndexPresenters 在命名约定和目录结构方面与这个模型几乎相同,但它们都没有出现此错误。
在这里找到了一个类似但未回复的帖子:
Name conflict between controller name and presenter namespace
有什么想法吗?
最佳答案
想通了,在这里回答:
Name conflict between controller name and presenter namespace
基本上,改变
@presenter = Pages::HomePresenter.new(current_user)
到
@presenter = ::Pages::HomePresenter.new(current_user)
关于ruby-on-rails - HomePresenter 的未初始化常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7925685/