我正在用Rails创建一个博客,我做的第一件事是管理区域(现在是我在应用程序中唯一的东西).我已经使用Bootstrap来快速设计所有页面并设计用于身份验证.
对于我使用的所有模型,视图和控制器scaffolding
,我生成了两个模型Admin
和Post
模型.
问题是,现在我必须创建REAL博客并使用/admin
路由访问管理面板.例如,要创建一个我应该访问的新帖子http:/mysite/admin/posts/new
.
另一个问题是我在公共博客页面(不是Bootstrap)中会有一个完全不同的设计,当然我会有不同的控制器,视图和路线.
那么,可以做些什么呢?
我建议删除Admin
模型,因为它看起来更像是命名空间而不是模型.我会:admin
在你的routes.rb
文件中创建一个命名空间,如:
namespace :admin do resources :posts end
这将导致此块内的所有路径都带有前缀w/admin
.因此,在管理员端编辑帖子的URL将是admin/posts/:id/edit
.
接下来我建议你做一个AdminController
所有的管理控制器都会继承.这样您就可以指定新布局.然后你可以创建一个Admin::PostsController
atapp/controllers/admin/posts_controller.rb
应用程序/控制器/ admin_controller.rb
class AdminController < ApplicationController layout 'admin' end
应用程序/控制器/管理/ posts_controller.rb
class Admin::PostsController < AdminController def index # admin/posts end end
应用程序/视图/管理/职位/ index.html.erb
Hello from the admin/posts view!