2013-05-08 72 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佈局,並在控制器中設置所需的佈局。

相關問題