Ruby on rails 嵌套控制器中的统一常数误差

Ruby on rails 嵌套控制器中的统一常数误差,ruby-on-rails,Ruby On Rails,我有一个控制器: class V2::OffersController > ApplicationController 在此文件中:app/controllers/v2/offers\u controller.rb 在该控制器中,我试图引用这个类: module Presenters class Offers 在此文件中:app/presenters/offers.rb 我是这样实例化这个类的: Presenters::Offers.new() 如果我将config.eag

我有一个控制器:

class V2::OffersController > ApplicationController
在此文件中:
app/controllers/v2/offers\u controller.rb

在该控制器中,我试图引用这个类:

module Presenters
    class Offers
在此文件中:
app/presenters/offers.rb

我是这样实例化这个类的:

Presenters::Offers.new()

如果我将
config.eager\u load
设置为true,则所有加载都很好,但仅在第一次尝试时加载,之后我会不断出现以下错误:

NameError (uninitialized constant V2::OffersController::Presenters)

我在Ruby 2.5.0上使用Rails 5.1.6.1,文件
app/presenters/offers.rb的类定义应该是:

class Offers
end
不是

app
presenters
,在本例中)下的第一级用于组织目的,不被视为模块。如果要使用:

module Presenters
  class Offers
  end
end
然后该文件需要是
app/presenters/presenters/offers

就我个人而言,我会这样做:

class OffersPresenter
end

将在
app/presenters/offers\u presenter.rb

文件
app/presenters/offers.rb
的类定义应为:

class Offers
end
不是

app
presenters
,在本例中)下的第一级用于组织目的,不被视为模块。如果要使用:

module Presenters
  class Offers
  end
end
然后该文件需要是
app/presenters/presenters/offers

就我个人而言,我会这样做:

class OffersPresenter
end

这将在
app/presenters/offers\u presenter.rb

ahhh中定义。谢谢,我一定错过了一点知识,即app下的第一级不被视为模块。非常感谢。啊,谢谢,我一定错过了一点知识,应用程序下的第一级不被视为模块。非常感谢。