基本上我的应用程序中有管理员和用户。在用户签名后,它也会路由user_dashboard,但如果我在url中更改为admin_dashboard,那么它也会被路由。我怎么能阻止
同样,如果管理员登录,它也会路由到Admin_dashboard,但如果我在url中更改为user_dashboard,则会进行路由。我该如何限制
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 :(得分:0)
如果您有任何字段,例如&#34; is_admin&#34;在用户模型中,您只需要检查登录用户是否为admin。
像
def after_sign_in_path_for(user)
if user.is_admin?
admin_dashboard_index_path
else
user_dashboard_index_path
end
end
答案 1 :(得分:0)
我相信这样做的方法是override the devise before
and after_sign_in_path_for
helpers
我认为(from what I've read),您可以使用逻辑来确定处理此问题的最佳方法:
def after_sign_in_path_for(resource)
stored_location_for(resource) ||
if resource.is_a?(Admin)
admin_dashboard_path
else
user_path(resource)
end
end