【问题标题】:Rails 4: Grouping Controllers in a folderRails 4:在文件夹中分组控制器
【发布时间】:2013-08-16 10:38:46
【问题描述】:

我想将我的所有控制器及其视图分组到文件夹中,例如“admin”下

这就是我所做的:
(1) 我把所有的controllers 都移到了一个文件夹admin
(2) 我把所有的views都移到了一个文件夹admin

(3) 我在 Rails Guide 中读到我应该这样做:

scope module: 'admin' do
  resources :admin_permissions, :admin_layout, :admin_db
end

但我不断收到错误

ActionController::RoutingError at /admin_permissions/index
uninitialized constant AdminMainController

目录结构:

controllers
  -> admin
    -> admin_main_controller
    -> admin_permissions_controller
    -> admin_layouts_controller
    -> admin_db_controller
views
  -> admin
    -> admin_main
    -> admin_permissions
    -> admin_layouts
    -> admin_db

所有前三个控制器都继承自 admin_main 继承自应用程序

关于阅读/检查什么有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    如果您执行rake routes,您会注意到所有控制器的名称都以“admin/”为前缀。

    因为您将控制器移动到目录“admin”,所以您应该为那里的每个控制器添加一个命名空间。例如:

    class Admin::AdminMainController < ActionController::Base
    end
    

    并检查您的控制器、视图和助手,更新所有相关路径和控制器名称。

    【讨论】:

    • 谢谢!!我在任何地方都添加了它,我在导入助手时是否也包含它? “包括 Admin::AdminMainHelper”或只是“包括 AdminMainHelper”
    • 现在取决于你的助手的模块名称是什么。如果名字是“Admin::AdminMainHelper”,那么“include Admin::AdminMainHelper”,或者“include AdminMainHelper”
    猜你喜欢
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多