【问题标题】:Rails validation - password :on => :create doesn't works?Rails 验证 - 密码 :on => :create 不起作用?
【发布时间】:2013-01-10 20:32:47
【问题描述】:

我有这个密码验证规则 - 我想在用户创建帐户然后在设置中验证密码 - 如果他不更改密码,我不想更改它(仅当相应的用户将更改它=他设置新密码并确认密码)。

这是我所拥有的:

  validates :password, 
            :length => {:within => 6..40}, 
            :on => :create   

但是:on => :create 规则对我不起作用 - 如果我在设置中发送空白密码,我仍然会收到关于密码错误的错误。

我做错了什么?

【问题讨论】:

  • 那是邮箱验证,你的密码验证是什么?
  • 对不起,我的错误,请参阅更新的 OP。

标签: ruby-on-rails ruby validation passwords


【解决方案1】:

看起来应该这样做:

validates :password, length: { within: (6..40) }, if: -> user { not user.persisted? or user.password.present? }

如果用户尚未持久化(create 操作)或稍后已提供密码(通过设置),它只会验证密码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2016-08-16
    • 2018-06-10
    相关资源
    最近更新 更多