2013-05-08 30 views
6

我使用Rails创建了一个博客,我做的第一件事是管理区域(现在是我在应用程序中唯一的东西)。我使用Bootstrap快速设计所有页面并设计认证。在Rails应用程序中创建管理区域

对于我所用的所有型号,视图和控制器,我使用了scaffolding,我生成了AdminPost型号。

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

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

那么,可以做些什么?

回答

15

我会建议删除Admin模型,因为在你的情况下,它似乎更像是一个命名空间而不是模型。我反而在routes.rb文件一样创建一个命名空间:admin

namespace :admin do 
    resources :posts 
end 

这将导致该模块内部的所有路由前缀W/admin。因此,用于编辑管理员端的帖子的URL将是admin/posts/:id/edit

接下来,我会建议制作一个AdminController所有的管理员控制器都将继承。这样你可以指定一个新的布局。然后,你可以创建一个Admin::PostsControllerapp/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 

应用程序/意见/admin/posts/index.html.erb

Hello from the admin/posts view! 
0

我想博客页面应该是公开的,这意味着需要非身份验证来查看它。其余的你已经在使用设计来保护这个区域。

对于不同的模板是很容易的,你可以创建2布局,并在控制器中设置所需的布局。

相关问题