HomePresenter 的未初始化常量

2023-12-30

我正在尝试实现一个 HomePresenter 在我的 Pages 控制器的 home 操作中使用:

# 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 在命名约定和目录结构方面与此模型几乎相同,但它们都没有给出此错误。

在这里发现了一个类似但未答复的帖子:

控制器名称和演示者命名空间之间的名称冲突 https://stackoverflow.com/questions/6884802/name-conflict-between-controller-name-and-presenter-namespace

有任何想法吗?


想通了这个问题,在这里回答一下:

控制器名称和演示者命名空间之间的名称冲突 https://stackoverflow.com/q/6884802/1015700

基本上,改变

@presenter = Pages::HomePresenter.new(current_user)

to

@presenter = ::Pages::HomePresenter.new(current_user)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HomePresenter 的未初始化常量 的相关文章

随机推荐