ruby-on-rails - HomePresenter 的未初始化常量

标签 ruby-on-rails controller presenter

我正在尝试实现一个 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/

相关文章:

ruby-on-rails - 在 link_to Rails 4 中使用 `data-toggle` 和 `data-target` 的语法

ruby-on-rails - Twilio Ruby 发送短信 - 未定义方法 `messages'

ruby-on-rails - #<Bundler::RubygemsIntegration:0x00005633f09a9000> 的未定义方法 `plain_specs'(NoMethodError)

grails - 无法在Grails Controller 中使用 'render'呈现表单标签

Android TV ImageViewCard 布局边距变化

ruby-on-rails - 在ActiveRecord中按位掩码搜索

sql - 将查询结果返回到 Grails 中的 View

c# - 更新 Controller 中的模型?

ruby-on-rails - Rails - Presenter 中的 Helper Singleton 和 Rails Route Helpers