编辑:我意识到关于: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
用户开始失败(这没有意义,因为密码无论如何都不应为零)。
答案 0 :(得分:1)
如果on: :save
已经存在,我看不到需要一起创建和更新的任何用例。
有关更多模型回调的信息,请参见this.
答案 1 :(得分:0)
所有内置的验证助手的默认行为是在保存时运行(创建新记录和更新记录时)。如果要更改它,可以使用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.)".
选项