每当我收到警告时:

app/controllers/agency/agencies_controller.rb:1: warning: toplevel constant ApplicationController referenced by Agency::ApplicationController

我的agency_controller.rb:
class Agency::AgenciesController < Agency::ApplicationController

  def index
    ...
  end

  ...
end

和Agency::ApplicationController:
class Agency::ApplicationController < ApplicationController
  layout 'agency'

  helper_method :current_agency
  private

  def current_agency
    @current_agency ||= current_user.agency
  end

end

rails 向我要什么?有什么问题吗?

与另一个 Controller 的情况相同
class Agency::ClientsController < Agency::ApplicationController
  ...
end

而且没有警告,没有错误...

最佳答案

我意识到这个问题将近两年了,但是我最近在another stackoverflow帖子中偶然发现了这个问题,并希望分享一些见解。

基本上,如果您的命名空间Agency恰好是class而不是module,则会收到该警告。在我上面粘贴的stackoverflow帖子中,他们有一个class的模型(Admin),它们的 namespace 也是Admin

This对正在发生的事情提供了更好的解释。

因此,请检查您的代码是否未在某处定义Agency类。祝你好运。

10-06 02:06