рельсы вложенный придумать редирект - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть приложение с вложенными ресурсами.мои маршруты:

resources :teams do 
  resources :blogs
end

в контроллере блогов, я использую другой макет, добавив

layout "teamlayout"

в контроллер.Оба макета, application.html.erb и teamlayout.html.erb, включают саму форму входа.который я сделал работая этим: https://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app

Теперь мой вопрос.когда пользователь входит в систему, я хочу, чтобы он был перенаправлен на страницу, с которой он входит.

1 Ответ

0 голосов
/ 28 декабря 2011

У вас есть пара опций:

Включите скрытое значение поля в форму входа в систему, описывающее источник входа в систему (например, 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, но немногоменее гибкий.

...