这被认为是好的吗?我甚至不知道before_action占了一块但是确实如此。有没有更好的方法呢?
class AdminsController < ApplicationController
before_action do
:authenticate_admin!
redirect_to retailer_dashboard_path if current_user.retailer?
redirect_to supplier_dashboard_path if current_user.supplier?
end
def dashboard
@admin = current_user
@retailers = Retailer.all
@suppliers = Supplier.all
end
end
答案 0 :(得分:2)
有after_sign_in_path_for
方法,您可以使用该方法推断每个用户角色的重定向网址。
def after_sign_in_path_for(resource)
if resource.retailer?
retailer_dashboard_path
elsif resource.supplier?
supplier_dashboard_path
else
super
end
end
这是重定向用户的Devise方式。
还有after_sign_out_path_for
方法。