ruby-on-rails-3 – Rails仅在用户创建或更新时验证
发布时间:2020-12-17 04:04:19 所属栏目:百科 来源:网络整理
导读:我的用户模型中有一个validates_confirmation_of:密码.问题是我也运行@ comment.user.save!创建注释以更新用户帐户的某些属性时. 创建注释时出错.验证失败:密码确认不能为空.我无法添加:on = “保存”到我的验证,因为我的注释控制器也调用了保存功能. 我
我的用户模型中有一个validates_confirmation_of:密码.问题是我也运行@ comment.user.save!创建注释以更新用户帐户的某些属性时.
创建注释时出错.验证失败:密码确认不能为空.我无法添加:on => “保存”到我的验证,因为我的注释控制器也调用了保存功能. 我已经读过这个帖子Rails model validation on create and update only,但它没有回答我的具体问题. UPDATE class User < ActiveRecord::Base attr_accessor :password # validations validates_presence_of :username validates_length_of :username,:within => 6..25 validates_uniqueness_of :username validates_presence_of :email validates_length_of :email,:maximum => 100 validates_format_of :email,:with => EMAIL_REGEX validates_confirmation_of :password,:if => :password_changed? validates_presence_of :password_confirmation validates_length_of :password,:within => 4..25,:on => :create before_save :create_hashed_password after_save :clear_password private def clear_password self.password = nil end end 解决方法
根据此
validates_confirmation_of,如果password_confirmation字段为nil,则模型应该有效.你把它存放到DDBB吗?或者验证可能有问题,您可以在此处粘贴用户模型吗?
无论哪种方式,你可以尝试这样的事情: validates_presence_of :password_confirmation,if: -> { password.present? } validates_confirmation_of :password,if: -> { password.present? } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |