Rails, сохраните тег привязки в редиректе sign_in сохраненная_ локация - PullRequest
0 голосов
/ 01 октября 2019

Проблема описана хорошо здесь

выдержка:

Given Я использую приложение Rails с аутентификацией Devise

And Iя зарегистрирован

But Я не вошел в систему прямо сейчас

When Я посещаю путь "/ path # thing"

Then Я должен увидетьформа входа

When Я вхожу в систему

Then Я должен быть перенаправлен на "/ path # thing"

1 Ответ

0 голосов
/ 01 октября 2019

добавить скрытый ввод в вашу страницу входа, для меня это было app / views / devise / session / new.html.haml

, а также некоторый javascript для заполнения ввода:

Я назвал вход tab_hash

= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f|
  = f.input :login, :hint => true, :required => true
  = f.input :password, :as => :password, :hint => false, :required => true
  = f.input :tab_hash, :as => :hidden
  %div.text-right
    = f.button :submit, t("formtastic.actions.sign_in"), class: 'btn-primary'

.text-center
  %p
  = render :partial => "devise/shared/links"

:javascript
  $(document).ready( function(){
    $("#user_tab_hash").val(window.location.hash);
  });

add attr_accessor :tab_hash для модели User

в app / controllers / application_controller.rb

add

  def after_sign_in_path_for(resource)
    stored = stored_location_for(resource)
    if stored.present?
      stored += params['user']['tab_hash'] # refs #3485 after signing in the tab was lost
    end
    stored || root_url
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...