После обновления до 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'