Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 用Devise after_sign_in_path_for重定向循环大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个noob问题.我想设法重定向到用户访问的最后一页.所以@R_606_10673@下…
def after_sign_in_path_for(resourcE)
    request.referer
end

非常好,除非用户实际上通过导致重定向循环的原始格式登录.

我试过了

def after_sign_in_path_for(resourcE)
   if (request.referer == "/users/sign_in")
  :pages_home
 else
  request.referer
 end

end

但是这不起作用,很可能是因为我不知道遇到原始用户登录页面(www.example.com/users/sign_in)时request.referer是否正在返回.

有任何想法吗?

tldr;使用devise,我想重定向到登录页面(即/ blog / 4),除非该页面是/ users / sign_in

解决了:

@H_242_4@matchu是对的request.referer还返回域名…

http://example.com/users/sign_in

(注:无www前缀)

我仍然对request.referer的替代方案感兴趣,如果它是一个不安全或低效的方式.

解决方法

不要重定向到引荐来源 – 通常是一个坏主意.

而是在查询字符串或表单数据中传递下一个值.也许使用像:

def after_sign_in_path_for(resourcE)
  params[:next] || super
end

当用户尝试访问需要认证的页面(例如/ admin / posts / 3 / edit)时,认证before_filter发出redirect_to new_session_url(:next => request.path).然后编写登录操作并查看以保留:next query-String参数.

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – 用Devise after_sign_in_path_for重定向循环全部内容,希望文章能够帮你解决ruby-on-rails – 用Devise after_sign_in_path_for重定向循环所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。