Задать вопрос
hummingbird
@hummingbird

Как переопределить метод удаления сессии в Devise?

В файле sessions_controller.rb попытался произвести различные манипуляции с:
def destroy
	super
end


Но это никак не отразилось на действиях при нажатии на ссылку.

В роуте все же ссылается на тот самый файл, что я и редактировал:
devise/sessions#destroy


При выходе происходит какая-то странная переадресация - у меня после выхода не работают модальные окна и прочее. Короче говоря - вся JS хохлома. Подобная ерунда заметна только после выхода. если переходит по страницам после выхода, то так же ничего не работает. Приходится вручную перезагрузить страницу. Поэтому хочу дописать в метод удаления сессии нормальную переадресацию.

Помогите, пожалуйста.
  • Вопрос задан
  • 179 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@nuvanda
Для переопределения стандартных методов гема Devise, нужно следующее:
# app/controllers/sessions_controller.rb
class SessionsController < Devise::SessionsController
  def destroy
    # your code here
  end
end

В роутах:
# app/config/routes.rb
devise_for :users, controllers: {sessions: 'sessions'}

Но, скорее всего, для решения твоей проблемы это не нужно.
Следует лишь почитать про gem 'turbolinks' (по умолчанию включен в rails-приложение):
Cтатья на habrahabr - лучше полностью, в крайнем случае с раздела 'Проблемы с уже существующими скриптами';
Ответ на stackoverflow - вариант на английском.

Если читать не хочется, краткий ответ: удали строку
# /app/assets/javascripts/application.js
//= require turbolinks

тем самым полностью отключив turbolinks в приложении.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы