gpt4 book ai didi

ruby-on-rails - attr_protected 仅用于更新?

转载 作者:行者123 更新时间:2023-12-04 06:10:29 26 4
gpt4 key购买 nike

我希望能够保护帐户的电子邮件字段不被更新,但不能在首次创建帐户记录时进行。
我尝试了以下方法:

validate :email_is_unchanged, :on => :update
def email_is_unchanged
errors.add :email, "can only be changed through confirmation" if email_changed?
end
但是当我尝试执行以下操作时(使用数据库中的现有记录):

a = Account.first

a.update_attributes({:email =>"email@example.com")}


它返回 true 但不保存记录。检查错误表明添加了验证方法的错误。
有一个更好的方法吗?

最佳答案

请尝试以下操作:

class Account < ActiveRecord::Base
attr_readonly :email
end

这允许使用电子邮件创建新记录,但不允许后续更新。

关于ruby-on-rails - attr_protected 仅用于更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5930920/

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