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

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? }

(编辑:李大同)

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

    推荐文章
      热点阅读