Rails验证:在使用包含验证器时,在仍然防止零保存的同时,摆脱了零的无效价值消息



在以下字段上给定验证:

validates :entity_type, inclusion: { in: %w(1 2), message: "is invalid" }

如果用户输入该字段的零是

,将返回的错误消息

"不能空白","

如何更改此验证,以便只有"零是该字段的输入值",只能返回"空白"?

在这种情况下,我们不希望NIL成为有效的值,只是为了清理验证消息传递。

我在任何地方都没有看到任何文档,所以想给出答案。

答案是将allow_nil: true与包含验证器一起使用。

validates :entity_type, inclusion: { in: %w(1 2), message: "is invalid" }, allow_nil: true

使用此手段,如果为该字段提供了零值,则只有"不能为空白"消息将从验证器中返回,而非nil无效的值将继续按正常运行。

最新更新