首先:我在谷歌上搜索并使用了这里的搜索,找到了相同错误的答案,但设置不同.也许我弄坏了不一样的东西;)

错误:

RuntimeError at /admin/users
Circular dependency detected while autoloading constant Admin::UsersController

struct 是:

App => controllers => admin => users_controller.rb

路由:

namespace :admin do
  resources :stuff
  resources :users
end

用户控制器:

class UsersController < Admin::BaseController
  def new
    #code
  end

  def create
    #code
  end

  def index
    #code
  end

  private

  def user_params
   #code
  end
end

管理基地控制器

class Admin::BaseController < ApplicationController
  layout 'admin'
  before_filter :require_login
end

使用:Rails 4.1.4、Ruby 2.1.2

谢谢你的帮助!

编辑:

发展rb

Rails.application.configure do
 config.cache_classes = false
 config.eager_load = false
 config.consider_all_requests_local       = true
 config.action_controller.perform_caching = false
 config.action_mailer.raise_delivery_errors = false
 config.active_support.deprecation = :log
 config.active_record.migration_error = :page_load
 config.assets.debug = true
 config.assets.raise_runtime_errors = true
end

推荐答案

看起来主要的问题可能只是您没有在Admin名称空间下命名UsersController,如下所示:

class UsersController < Admin::BaseController

简单修复:

class Admin::UsersController < Admin::BaseController

然而,我建议您也将名称空间分成不同的部分,以避免将来的麻烦.因此,不要像上面那样做:

# app/controllers/admin/users_controller.rb
module Admin
  class UsersController < Admin::BaseController
    # ...
  end
end

并对所有其他名称空间控制器执行相同的操作,例如:

# app/controllers/admin/base_controller.rb
module Admin
  class BaseController < ApplicationController
    # ...
  end
end

这样,由于Rails正在加载和自动加载等等,在try 加载其下的类之前,它将始终确保定义管理模块.有时你会得到未知的常数错误.推理有点复杂,但如果你想看一看,请查看this post.

使现代化

在Rails Edge上,现在有an official Guide on the topic of Auto Loading of Constants个.

Ruby-on-rails相关问答推荐

使用超级用户角色和未知密码创建与POSTRES用户的连接

带有data-turbo的rails`link_to‘未获得turbo_stream请求格式

Rails 6:强类型原始 SQL 查询返回数组类型

从 rails 5 升级到 6 和 zeitwerk

Rails 7 应用程序 - 引用模型文件时出现未初始化常量错误

循环大量记录时 Ruby on Rails 内存泄漏; find_each 没有帮助

Ruby/Rails 中的类方法与常量

我如何在不同的视图中使用助手

简单表单关联自定义标签名称

指定要从 before_filter 中排除的控制器

rails 方法获取模型的关联名称

Ruby on Rails:有条件地显示部分

Rails 引擎中的迁移?

我收到在扫描下一个令牌时发现无法启动任何令牌的字符

如何在 Ruby on Rails 的内存缓存存储中列出键?

rails active admin 部署:找不到文件'jquery-ui'

如何在 RSpec 中包含 Rails 助手

非持久 ActiveRecord 模型属性

:javascript haml 标签中的内联Ruby ?

即使X-Frame-Options为ALLOWALL,也无法在 iframe 中显示我的 rails 4 应用程序