HomePresenter的未初始化常数 [英] uninitialized constant for HomePresenter
问题描述
#app / controllers / pages_controller.rb
class PagesController< ApplicationController
def home
@presenter = Pages :: HomePresenter.new(current_user)
end
...
end
#app /presenters/pages/home_presenter.rb
模块页面
class HomePresenter
def initialize(user)
@user = user
end
...
end
end
我的演示者规范传递没有错误,但是当我运行服务器并访问Chrome中的主页,我得到:
未初始化的常量ActionController :: Caching :: Pages :: HomePresenter
对于我的应用程序中的另外两个模型,我使用IndexPresenters,
在这里找到了一个类似但未回答的帖子:
有任何想法吗?
:
基本上,更改
@presenter = Pages :: HomePresenter.new current_user)
至
@presenter = :: Pages :: HomePresenter.new(current_user)
I'm trying to implement a HomePresenter to be used inside the home action of my 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
My presenter specs pass without errors, but when I run the server and access the home page in Chrome, I get this:
uninitialized constant ActionController::Caching::Pages::HomePresenter
For two other models in my app, I'm using IndexPresenters that are almost identical to this one with regard to naming convention and directory structure, but neither of them gives this error.
Found a similar, yet unanswered post here:
Name conflict between controller name and presenter namespace
Any ideas?
Figured this out, answered it here:
Name conflict between controller name and presenter namespace
Basically, change
@presenter = Pages::HomePresenter.new(current_user)
to
@presenter = ::Pages::HomePresenter.new(current_user)
这篇关于HomePresenter的未初始化常数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!