我正在构建一个管理控制面板(尝试;))。
我一直在研究 Ruby on Rails 中的后端管理,并按照建议尝试让 Admin::AdminController 检查管理员并设置布局等。
但我也试图在其中设置一个路由,将 /admin 路由到 /admin/dash
根据我对阅读http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing的理解,特别是第 2.6 节,
管理员::管理员控制器
告诉 Rails Admin 是名称空间,AdminController 是控制器,它是 ApplicationController 的子类(扩展?,接口的实现?)。这意味着控制器应该位于 app/controllers/admin/ 中并被称为 admin_controller.rb。
但我想要的是
管理员控制器
我收到如下错误:
uninitialized constant Admin::Controller
我的路线代码:
match :admin, :to => 'admin/admin#dash'
namespace :admin do
# Directs to /admin/resources/*
match '/dash', to: '#dash'
resources :users, :pictures
end
我已将控制器放入 app/controllers/admin、app/controllers 以及与
class Admin::AdminController < ApplicationController
before_filter :admin_user
# / ** STATIC ADMIN PAGES ** /
def dash
end
end
或类 AdminController < ApplicationController。
编辑:也许这是我对路由的理解。例子:
namespace :admin do
get "/dash"
对比
namespace :admin do
match "/dash" to "admin#dash"
对比
namespace...
match "/dash" to "#dash"
第一个使我可以通过控制器显示破折号,即管理员/破折号将由
AdminController < ApplicationControler
def dash
end
第二个路由 admin/admin/dash 到 admin/dash 吗?
TL/DR:我认为我的困惑来自语法或我对 RESTful 实践的理解不足,甚至可能是 ruby 中的类/对象继承。
感谢您帮助这个 n00b。:)
附带问题:我可以将我的代码更改为最小化,直到有人像剧透一样打开它,这样如果我找到更多信息并添加它就不会拥挤?