未经身份验证时,turbolinks 不会更改重定向 url
turbolinks doesn't change redirect url when unauthenticated
当 turbolink 关闭时,例如:
//= require jquery
//= require jquery_ujs
//= require_tree .
未经身份验证的用户试图访问 url,例如受 authenticate_user 保护的 /themes/new
!设计 gem。
然后他通常会被重定向到 /sign_in
.
但是当打开 turbolinks 时,例如:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
如果用户尝试访问 /themes/new
,他会看到与 /sign_in
相同的屏幕。但是 url 是 /themes/new
.
为什么会发生这种变化?
我阅读代码以使用 pry-byebug 解决问题。但这对我来说太复杂了。
Rails 4.2.0
设计 3.4.1
这是一个known issue,并且在某种程度上限制了目标。
您可以 adjust the url manually,但在这种情况下,可能需要大量覆盖 gem 方法才能使用适当的选项。它还将强制执行 "real" 重定向,这会更慢。
我认为更好的解决方案是重新设想您的登录 UI 根本不需要重定向到单独的页面。也许它可以在模态 window 中打开对话框,成为主导航的一部分,从程式化容器中的主导航下拉,等等。这会给你一点额外的视觉效果,同时完全避免这个问题.
当 turbolink 关闭时,例如:
//= require jquery
//= require jquery_ujs
//= require_tree .
未经身份验证的用户试图访问 url,例如受 authenticate_user 保护的 /themes/new
!设计 gem。
然后他通常会被重定向到 /sign_in
.
但是当打开 turbolinks 时,例如:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
如果用户尝试访问 /themes/new
,他会看到与 /sign_in
相同的屏幕。但是 url 是 /themes/new
.
为什么会发生这种变化?
我阅读代码以使用 pry-byebug 解决问题。但这对我来说太复杂了。
Rails 4.2.0 设计 3.4.1
这是一个known issue,并且在某种程度上限制了目标。
您可以 adjust the url manually,但在这种情况下,可能需要大量覆盖 gem 方法才能使用适当的选项。它还将强制执行 "real" 重定向,这会更慢。
我认为更好的解决方案是重新设想您的登录 UI 根本不需要重定向到单独的页面。也许它可以在模态 window 中打开对话框,成为主导航的一部分,从程式化容器中的主导航下拉,等等。这会给你一点额外的视觉效果,同时完全避免这个问题.