加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:10:55 所属栏目:百科 来源:网络整理
导读:我希望能够保护帐户的电子邮件字段不被更新,但不能在首次创建帐户记录时保护. 我尝试了以下方法: validate :email_is_unchanged,:on = :updatedef email_is_unchanged errors.add :email,"can only be changed through confirmation" if email_changed?end
我希望能够保护帐户的电子邮件字段不被更新,但不能在首次创建帐户记录时保护.

我尝试了以下方法:

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读