我有一个rails应用程序,它与设计3和轨道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)
我尝试了一切,包括卸载设计并再次安装,然后尝试从头开始创建一个单独的模型,但仍未定义方法。
有什么想法吗?
答案是简单地改变:
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支持自己设计之前,你可以尝试使用这个fork:
gem 'devise', github: 'twalpole/devise', branch: 'rails5'