我使用 Rails 5.1.4 启动了一个应用程序;设计4.2;蒙古人 6.1.0。
当我尝试创建帐户时,出现此错误
Devise::RegistrationsController#create 中的 NoMethodError 未定义方法“will_save_change_to_email?” 为了 #
我在 GitHub 上看到了一些帖子,但我不知道如何解决这个问题。 https://github.com/plataformatec/devise/issues/4531#issuecomment-313600769
我应该怎么办?
MonFresh 的这个答案对我有用
https://github.com/plataformatec/devise/issues/4531#issuecomment-323236400
我刚刚记得我们必须覆盖 email_changed?而 email_was 在我们的应用程序中,因为它不是数据库字段,所以为了能够升级到 Rails 5.1,我所要做的就是重命名 email_changed?将_save_change_to_email?email_was 到 email_in_database。
不幸的是,这些新的 Rails 5.1 方法尚未记录在此处:http://api.rubyonrails.org/classes/ActiveModel/Dirty.html,但您可以在这里阅读它们:rails/rails#25337(评论)
我基本上将以下别名添加到我的 Mongoid 模型中(但我相信这与 ActiveModel 有关)
alias will_save_change_to_email? email_changed?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2801 次 |
| 最近记录: |