使用validates_format_of验证密码

时间:2019-05-30 01:54:36

标签: ruby-on-rails ruby-on-rails-5

编辑:我意识到关于:save已经存在的区别的评论是正确的,并且能够解决一些错误。但是,看来:password的正则表达式验证失败。

我有点困惑,认为问题可能与表本身中只有:password_digest有关,而我们在模型中使用密码和password_confirmation作为属性。但是我还猜想Rails已经解决了所有问题,并且可以使用has_secure_password函数来处理所有事情。

validates_format_of :password, :with => /\A[a-zA-Z]\z/, :on => :create, :update失败,字符串为password

很显然,这没有意义,并且在控制台中也可以很好地匹配(使用=~.match()。还要注意是否为allow_nil: true的其他测试设置了:password用户开始失败(这没有意义,因为密码无论如何都不应为零)。

2 个答案:

答案 0 :(得分:1)

如果on: :save已经存在,我看不到需要一起创建和更新的任何用例。 有关更多模型回调的信息,请参见this.

答案 1 :(得分:0)

根据rails docs

  

所有内置的验证助手的默认行为是在保存时运行(创建新记录和更新记录时)。如果要更改它,可以使用on::create仅在创建新记录时运行验证,或使用on::update仅在记录更新时运行验证。

因此,您不应在验证中使用"However, in certain cases, when a line cannot be "soft-wrapped", the horizontal scroll bar still appears (for example, if a line consists of a single string that is wider than the visible area.)".选项