设计重定向第一次登录



我们正在尝试路由新用户,以在他们的第一个登录名上填写一个事实说明表,然后在其余时间内降落在其仪表板上。

在此处撰写这篇文章:首先使用Rails登录

我们将其添加到我们的应用程序控制器:

def 
after_sign_in_path_for(user) 
redirect_to ((current_user.sign_in_count == 0) ? new_fact_sheet_path : dashboard_index_path )
end

,但我们得到了这个错误:

" AbstractController :: DoubleRenderError在设计中:: registrationsController#创建在此操作中,渲染和/或重定向多次调用。请注意,您只能调用渲染或重定向,最多一次。另请注意,重定向也不终止操作执行,因此,如果要在重定向后退出操作,则需要执行诸如" redirect_to(...)和返回"之类的事情。

我们以为我们正在覆盖应用程序控制器中使用重定向的默认路由设计?

解决方案:如下评论中所述,这最终成为了两部分的解决方案。有效的代码:

def 
after_sign_in_path_for(user) 
((current_user.sign_in_count == 1) ? new_fact_sheet_path : dashboard_index_path )
end

我认为您的DoubleRenderError的原因是after_sign_in_path_for(resource_or_scope)应该返回后来通过设计重定向的路径。但是,您在覆盖的after_sign_in_path_for()中调用redirect_to,因此将其重定向两次。只需丢弃redirect_to并返回适当的路径。

我认为应该在DeSisessession Controller上阅读以下内容:首次登录重定向

之后设计

人们使用了同样的东西,并且有效。

最新更新