Скажите, что пользователь нажимает ссылку на защищенную страницу. Затем они перенаправляются на экран знака, на котором они могут войти. Если они это сделают, они успешно перенаправляются на эту страницу. Но если у них нет учетной записи, они должны зарегистрироваться. Здесь все становится сложно, потому что я делаю подтверждение по электронной почте.
Нажимая на ссылку, она создает новый сеанс, я не могу автоматически перенаправить пользователя на эту защищенную страницу. Я пытаюсь изменить это, добавив ссылку на перенаправление внутри ссылки подтверждения. Я хотел бы сделать:
<%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token, :redirect_to => stored_location_for(@resource)) %>
Но я не могу понять, как получить доступ к stored_location_for
(или если это даже правильное место для получения). Он определен в Devise::Controllers::Helpers
, но это метод экземпляра, поэтому я не могу сделать Devise::Controllers::Helpers.stored_location_for(…)
.
Мой вопрос в том, как получить доступ к stored_location_for
ИЛИ каков наилучший способ сделать это?
Моя цель - это сделать, а затем в моем настраиваемом ConfirmationsController определите:
def show
if params[:redirect_to]
session["user_return_to"] = params[:redirect_to]
end
super
end
Это должно работать правильно?