2016-03-14 116 views
0

可以說我有3個色器件模型(管理員,管理,用戶),我有文章模型管理員管理用戶色器件路由紅寶石

我想以這種方式創建URL(路由):

  • 的色器件模型

    本地主機/管理

    本地主機/管理

    本地主機/用戶

  • 對用於所述特定色器件用戶物品

    本地主機/管理/物品(由管理員物品)

    本地主機/管理/物品(由管理物品)

    本地主機/用戶/文章(用戶文章)

有人可以創建一個簡單的示例或指導我如何在軌道上配置紅寶石這樣的設置?

我用創建的代碼創建了一個git。你可以將這個問題提交到這個git示例中嗎? https://github.com/axilaris/admin_user_devise_articles

回答

0

您可以使用命名空間。有一個在http://guides.rubyonrails.org/routing.html

您還可以強制在說的命名空間驗證了Rails路由指南中的一個很好的說明,加入authenticate如下:

namespace :admin do 
    authenticate :admin do 
    resources :articles, only: :index 
    end 
end 

最後,您可以登錄後指定裝置和後/或退出路徑添加以下到app/controllers/application_controller.rb

def after_sign_in_path_for(resource) 
    if resource.is_a?(User) 
    user_articles_path # or whatever path you want 
    elsif resource.is_a?(Admin) 
    ... 
    elsif resource.is_a?(Management) 
    ... 
    end 
end 

def after_sign_out_path_for(resource) 
    new_session_path(resource) # or whatever path you want 
end 
+0

仍然不知道如何做,i'ved加入https://github.com/axilaris/admin_user_devise_articles這個分支test_namespace_branch。 「未初始化的常量Admin :: ArticlesController」當我進入http:// localhost:3000/admin/articles – Axil

+0

您需要在admin命名空間中添加一些文章控制器。我會快速看看你的git ... – sebsonic2o

+0

我已經有了一些工作。結帳主人。我在admin和user下創建了articles_controller.rb。 https://github.com/axilaris/admin_user_devise_articles/blob/master/app/controllers/admin/articles_controller.rb。現在使用localhost:3000/admin/articles。現在試圖讓身份驗證工作。 – Axil