turbolinks在未经身份验证时不会更改重定向URL

时间:2015-03-13 07:21:37

标签: ruby-on-rails devise

当涡旋关闭时,如:

//= require jquery
//= require jquery_ujs
//= require_tree .

未经身份验证的用户尝试访问url,例如/themes/new,受authenticate_user保护!设计宝石。 然后他通常会被重定向到/sign_in

但是当滔滔不绝时,就像:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .

如果用户尝试访问/themes/new,他会看到与/sign_in相同的屏幕。但网址是/themes/new

为什么会发生这种变化?

我使用pry-byebug读取代码来解决它。但这对我来说太复杂了。

Rails 4.2.0 设计3.4.1

1 个答案:

答案 0 :(得分:1)

这是known issue,有点是目标的限制。

您可以adjust the url manually,但在这种情况下,可能需要大量重写gem方法才能使用适当的选项。它还会强制进行“真正的”重定向,这将更慢。

我认为更好的解决方案是重新构想您的登录UI,根本不需要重定向到单独的页面。也许它可以在模态窗口中打开对话框,成为主导航的一部分,从程式化容器中的主导航中下拉等等。这将为您提供一些额外的视觉效果,同时完全避免这个问题。