更新到 Rails 5 和 Devise 4.0.0.rc1 后,devise authenticate_user!方法未定义
After updating to Rails 5 and Devise 4.0.0.rc1, the devise authenticate_user! method is not defined
我有一个 rails 应用程序,它 运行 与设计 3 和 rails 4 完美结合。我将 rails 更新为 5,它给出了 DEPRECATION WARNING: alias_method_chain is deprecated
.所以我不得不将设计版本更改为 4.0.0.rc1.
现在似乎该设计没有生成 authenticate_user!
、is_admin
等方法。
我收到以下错误
Before process_action callback :authenticate_user! has not been defined (ArgumentError)
我尝试了所有方法,包括卸载设计并重新安装,然后尝试从头开始创建一个单独的模型,但仍然没有定义方法。
有什么想法吗?
我能判断出问题,在rails 5中,如果调用时没有定义跳过方法,就会出现异常,除非我们添加:unless
条件。
在设计本身支持 rails5 之前,您可以尝试使用这个分支:
gem 'devise', github: 'twalpole/devise', branch: 'rails5'
答案是简单地改变:
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 应用程序,它 运行 与设计 3 和 rails 4 完美结合。我将 rails 更新为 5,它给出了 DEPRECATION WARNING: alias_method_chain is deprecated
.所以我不得不将设计版本更改为 4.0.0.rc1.
现在似乎该设计没有生成 authenticate_user!
、is_admin
等方法。
我收到以下错误
Before process_action callback :authenticate_user! has not been defined (ArgumentError)
我尝试了所有方法,包括卸载设计并重新安装,然后尝试从头开始创建一个单独的模型,但仍然没有定义方法。
有什么想法吗?
我能判断出问题,在rails 5中,如果调用时没有定义跳过方法,就会出现异常,除非我们添加:unless
条件。
在设计本身支持 rails5 之前,您可以尝试使用这个分支:
gem 'devise', github: 'twalpole/devise', branch: 'rails5'
答案是简单地改变:
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