У вас есть пара опций:
Включите скрытое значение поля в форму входа в систему, описывающее источник входа в систему (например, hidden_field_tag(:login_source, "team")
), и определите свою собственную логику для SessionsController # create, который использует скрытыйзначение поля, чтобы определить местоположение для response_with.
Или вы можете отслеживать местоположение пользователя, используя before_filter в контроллерах с формами входа, выполнив что-то вроде
def store_location
session['saved_location'] = request.request_uri
end
Затем,Вы можете переопределить метод after_sign_in_path_for (resource) в вашем контроллере приложения, чтобы использовать значение сеанса save_location, чтобы определить, куда перенаправлять.
Второй вариант мне кажется немного менее инвазивным для инфраструктуры Devise, но немногоменее гибкий.