Отображать соответствующие заголовки для защищенной логином части сайта (странная ошибка Devise) - PullRequest
0 голосов
/ 11 февраля 2020

Большая часть моего сайта только для членов. Это имеет тот недостаток, что когда участники обмениваются ссылками друг с другом, например, в официальной группе Facebook, в предварительном просмотре будет отображаться только обобщенный c «Мой сайт», без каких-либо указаний, на какую часть сайта они ссылаются. Это связано с тем, что сканер Facebook (или любой другой сканер) будет отображать форму входа и не видеть дальше.

Чтобы иметь более релевантный предварительный просмотр, мне нужно установить заголовок страницы как функцию страницы. за пределами страницы входа. Я обнаружил, что у Devise есть удобный метод для этого, называемый after_sign_in_path_for(User), поэтому я подумал сделать переключение на основе возвращаемого значения этого метода ...

... и вдруг никто не был перенаправлен после входа в систему больше. Оказывается, after_sign_in_path_for(User) стирает свои собственные данные при вызове, поэтому вы не можете использовать их, чтобы выяснить заголовок страницы и по-прежнему перенаправлять людей после входа в систему.

1 Ответ

0 голосов
/ 11 февраля 2020

Решение, которое я нашел после изучения внутренних устройств Devise, заключается в использовании session["user_return_to"]. Именно здесь Devise получает путь после входа в систему, если вы его не переопределили. Вы можете получить значение, но всякий раз, когда вызывается after_sign_in_path_for(User), значение уничтожается.

...