#ruby-on-rails #devise
#ruby-on-rails #разработка
Вопрос:
В моем ConfirmationsController пользователь автоматически входит в систему, а затем перенаправляется на представление, которое в основном просто говорит: «эй, вы успешно зарегистрировались
def after_confirmation_path_for(resource_name, resource)
sign_in(resource)
registration_success_path
end
Мне нужна эта промежуточная страница для маркетинговых целей. После того, как эта страница была «visitet», я хочу снова перенаправить, на этот раз по следующему пути
after_sign_in_path_for
который является методом в ApplicationController. Но это перенаправление возвращает nil.
def after_confirmation_path_for(resource_name, resource)
sign_in(resource)
registration_success_path and return
redirect_to stored_location_for(resource) || super
end
Что не так и как я могу вернуть пользователя в его местоположение после того, как это промежуточное представление было показано при подтверждении???
Комментарии:
1. Строка
redirect_to stored_location_for(resource) || super
, скорее всего, недоступна из-заregistration_success_path and return
.2. Также, если вы хотите автоматически перенаправлять после того, как пользователь некоторое время находился на странице, вам нужно использовать javascript для установки тайм-аута, а затем перенаправить с помощью настройки
window.location
. Вы не можете отправить два перенаправления обратно, поскольку это всего лишь один заголовок местоположения.