rails:allow_nil => true不起作用

时间:2018-07-21 05:35:26

标签: ruby-on-rails

我有一个用于图书清单的模型,在我的表单中,我有一个供isbns使用的地方。我的模型验证是为了使用户只能输入数字和破折号。我想要它,以便如果他们将其留空,它仍然可以工作。

listing.rb

  validates :isbn, format: { with: /\A[\d-]*\d[\d-]*\z/ }, :allow_nil => true

问题是,当您提交表单并将该空格留空时,会出现错误。

1 error prohibited this listing from being saved:
Isbn is invalid

为什么此验证不允许空白提交?

1 个答案:

答案 0 :(得分:1)

nil和空白不是一回事:如果您的表单正在提交一个空字符串,则该字符串不是nil,但也不符合声明的格式。如果要允许空白值,则需要:allow_blank而不是:allow_nil