После обновления до Rails 5 и Devise 4.0.0.rc1, пользователь аутентификации devise! метод не определен
у меня было приложение rails, которое отлично работало с devise 3 и rails 4. Я обновил rails до 5, и он дал DEPRECATION WARNING: alias_method_chain is deprecated
. Поэтому мне пришлось изменить версию devise на 4.0.0.ник1.
теперь кажется, что devise не генерирует методы, такие как authenticate_user!
, is_admin
etc..
Я получаю следующую ошибку
Before process_action callback :authenticate_user! has not been defined (ArgumentError)
я попробовал все, включая, удалить devise и установить снова, а затем попытался создать отдельную модель с нуля и все еще методы не определены.
любые идеи, пожалуйста ?
3 ответов
ответ для этого-просто изменить:
skip_before_action :authenticate_user!
С
skip_before_action :authenticate_user!, raise: false
https://github.com/plataformatec/devise/issues/4207 https://github.com/thoughtbot/clearance/issues/621
Я мог бы определить проблему, в rails 5 будет исключение, если метод пропуска не определен во время вызова, если мы не добавим :unless
состояние.
пока поддержка rails5 не приземлится в devise сама, вы можете попробовать использовать эту вилку:
gem 'devise', github: 'twalpole/devise', branch: 'rails5'