我正在尝试实现一个 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(使用前将#替换为@)