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下的第一级不被视为模块。非常感谢。啊,谢谢,我一定错过了一点知识,应用程序下的第一级不被视为模块。非常感谢。