gpt4 book ai didi

ruby-on-rails - self 保存!产生参数错误 #

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:06 24 4
gpt4 key购买 nike

我用下面的代码覆盖了 Devise 的 valid_password 函数:

  def valid_password?(password)
if legacy_password?
return false unless Devise.secure_compare(self.encrypted_password,
legacy_password(password, self.encrypted_password))

attributes = { password: password,
password_confirmation: password,
legacy_password: false }

save!
end
super password
end

我的跟踪显示一切都已正确设置(新的 encrypted_pa​​ssword)但是当进程到达保存时!它返回 #<ArgumentError: wrong number of arguments (0 for 2)>

感谢帮助!

更新:

当我浏览这些字段时,看起来 password 和 password_confirmation 设置正确,但返回错误的是 legacy_password。此外,当我在控制台中输入 User.legacy_password 时,我得到了同样的错误。这是数据库的问题吗?

我最近添加了 legacy_password 作为迁移。

class AddLegacyPasswordToSpreeUsers < ActiveRecord::Migration
def up
add_column :spree_users, :legacy_password, :boolean
end

def down
remove_column :spree_users, :legacy_password
end

结束

最佳答案

原来我有一个同名的方法 (legacy_password)。当我尝试更新属性时,它正在调用方法(需要 2 个参数)并返回上述错误。

关于ruby-on-rails - self 保存!产生参数错误 #<ArgumentError : wrong number of arguments (0 for 2)>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30652397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com