我添加了一个设计after_sign_in_path_for
方法,但我的flash消息没有出现。有什么想法吗?
def after_sign_in_path_for(resource)
case current_user.default_role_sym
when :super_admin
flash.now[:notice] = 'Signed in as Super Admin'
root_url
when :company_admin
flash.now[:notice] = 'Signed in as company admin'
root_url
else
msg = "Signed in as ELSE"
flash.now[:notice] = 'Signed in as pending client'
root_url
end
end
答案 0 :(得分:1)
在调用登录路径以获取将用户重定向到的URL之后,因此在调用该方法之后,将从Rails发出302重定向。浏览器将向您的rails应用程序发出另一个请求,指出您返回的URL(在本例中为root_url)。 flash.now仅在当前请求期间可用,请求完成后闪存将为空。但是,如果您设置了flash [:notice],它将在下一个请求中可用。
尝试设置flash [:notice]而不是flash.now [:notice]。有关详细信息,请参阅this rails guide。
答案 1 :(得分:1)
只需将方法移至application_controller.rb
即可。