Devise сам по себе является движком Rails, и вы можете переопределить любую его функциональность, создав копию файла, который вы хотите изменить, в своем локальном каталоге.Когда Rails начинает искать соответствующий контроллер для запроса, он сначала проверяет локальное приложение, затем vendor / gems и затем сами загруженные гемы.
В случае Devise они упоминают, что модифицируют контроллерыдолжно быть сделано следующим образом:
Настройка контроллеров
Если настройки на уровне представлений недостаточно, вы можете настроить каждый контроллер, выполнив следующие действия:
1) Создайте свой собственный контроллер, например, Admins :: SessionsController:
class Admins::SessionsController < Devise::SessionsController
end
2) Скажите маршрутизатору использовать этот контроллер:
devise_for :admins, :controllers => { :sessions => "admins/sessions" }
3) И поскольку мы изменили контроллер, он не будет использовать представления «devise / session», поэтому не забудьте скопировать «devise / session» в «admin / session».
Помните, что Devise использует флэш-сообщениячтобы пользователи знали, был ли вход успешным или неудачным.Devise ожидает, что ваше приложение будет вызывать «flash [: alert]» и «flash [: alert]» в зависимости от ситуации.
Вот источник цитаты: https://github.com/plataformatec/devise