在Rails应用程序中创建管理区域

Fra*_*ros 6 ruby ruby-on-rails ruby-on-rails-3

我正在用Rails创建一个博客,我做的第一件事是管理区域(现在是我在应用程序中唯一的东西).我已经使用Bootstrap来快速设计所有页面并设计用于身份验证.

对于我使用的所有模型,视图和控制器scaffolding,我生成了两个模型AdminPost模型.

问题是,现在我必须创建REAL博客并使用/admin路由访问管理面板.例如,要创建一个我应该访问的新帖子http:/mysite/admin/posts/new.

另一个问题是我在公共博客页面(不是Bootstrap)中会有一个完全不同的设计,当然我会有不同的控制器,视图和路线.

那么,可以做些什么呢?

Kyl*_*cot 15

我建议删除Admin模型,因为它看起来更像是命名空间而不是模型.我会:admin在你的routes.rb文件中创建一个命名空间,如:

namespace :admin do
   resources :posts
end
Run Code Online (Sandbox Code Playgroud)

这将导致此块内的所有路径都带有前缀w/admin.因此,在管理员端编辑帖子的URL将是admin/posts/:id/edit.

接下来我建议你做一个AdminController所有的管理控制器都会继承.这样您就可以指定新布局.然后你可以创建一个Admin::PostsControlleratapp/controllers/admin/posts_controller.rb

应用程序/控制器/ admin_controller.rb

class AdminController < ApplicationController
  layout 'admin'
end
Run Code Online (Sandbox Code Playgroud)

应用程序/控制器/管理/ posts_controller.rb

class Admin::PostsController < AdminController
  def index
    # admin/posts
  end
end
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/管理/职位/ index.html.erb

Hello from the admin/posts view!
Run Code Online (Sandbox Code Playgroud)