2016-03-14 69 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