2015-03-13 3 views
1

Когда turbolinks прочь, как:turbolinks не изменяет URL переадресации при неаутентификации

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

неавторизованный пользователь пытается посетить URL, например /themes/new, который защищен от authenticate_user! создания драгоценного камня. Затем он обычно перенаправляется на /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 DEViSE 3.4.1

ответ

1

Это known issue, и в некоторой степени ограничение цели.

Вы можете adjust the url manually, но в этом случае потенциально потребуется много переопределяющих методов драгоценных камней для использования соответствующей опции. Это также приведет к «реальной» перенаправлению, которая будет медленнее.

Я думаю, что лучшим решением было бы переосмыслить ваш интерфейс входа в систему, чтобы не требовать перенаправления на отдельную страницу вообще. Возможно, он может открыть диалог в модальном окне, стать частью основной навигации, спуститься с основной навигации в стилизованном контейнере и т. Д. Это даст вам немного дополнительного визуального ощущения, избегая при этом этой проблемы.

+0

Извините за поздний ответ. Я понимаю причину проблемы благодаря вам. Это ограничение турбонасосов. Поэтому я решил не использовать турбовинты. – tarky