-1

基本上我的管理员和用户在我的应用程序中。在这里用户签名后,它也是路由user_dashboard,但如果我作出admin_dashboard更改网址,它也得到路由。我怎样才能停止分别验证用户和管理员

类似地,如果管理员获得登录它也路由到Admin_dashboard,但如果我作出user_dashboard它的路由更改URL。我怎么能限制

class ApplicationController < ActionController::Base 

    protect_from_forgery 

    skip_before_filter :authenticate_user! , :only => ["welcome#index"] 

    def after_sign_in_path_for(user) 
    user_dashboard_index_path 
    end 

    def after_sign_out_path_for(user) 
    welcome_index_path 
    end 
end 
+0

你可以使用像active_admin的宝石...?或者你可以在控制器中创建一个动作,并在你的控制器中添加before_filter选项...在这个动作中,你可以把你的相关代码放到你的屏幕上。 – sp1rs

+0

如果你正在使用devise gem,你也可以为用户和管理员创建一个范围。如果你想要你的管理员和用户都分别然后用户认证使用设计和管理面板使用Active-Admin Gem。 – SSR

+0

你如何识别你的管理员和用户?你有什么领域? – SSR

回答

0

如果你有这样的用户模型“is_admin”任何领域,那么你只是需要检查是否登录用户为admin与否。

def after_sign_in_path_for(user) 
    if user.is_admin? 
    admin_dashboard_index_path 
    else 
    user_dashboard_index_path 
    end 
end 
+0

错误?对于#<用户:0x9063cf0> – learner

+0

您是否有用户模型中的任何字段,如is_admin?,如果不是,则默认情况下取一个并存储is_admin = true。或者你可以按照你的要求来做。 – SSR

相关问题