仅在创建和更新时进行Rails模型验证

Jak*_*old 51 validation model ruby-on-rails

如果我只想在create上进行验证,那么我可以做

validates_presence_of :password, :on => :create
Run Code Online (Sandbox Code Playgroud)

但是我怎么说创建和更新?我尝试了这个,但它不起作用:

validates_presence_of :password, :on => [ :create, :update ]
Run Code Online (Sandbox Code Playgroud)

我必须定义两次验证吗?

Ale*_*yra 66

默认情况下,将为create和update运行验证.所以应该只是:

validates_presence_of :password
Run Code Online (Sandbox Code Playgroud)

:on键只允许您选择其中一个.

  • 新约定实际上是使用:`validates:password,presence:true` (20认同)

小智 12

只写:

validates_presence_of :password
Run Code Online (Sandbox Code Playgroud)

没必要...

on => :create
Run Code Online (Sandbox Code Playgroud)