gpt4 book ai didi

ruby-on-rails - 了解 Rails 验证 : what does allow_blank do?

转载 作者:行者123 更新时间:2023-12-03 07:48:34 24 4
gpt4 key购买 nike

我对 Rails 还很陌生,发现了一个小片段来逐步验证存在性和唯一性:首先检查存在性,然后检查唯一性。

validates :email, :presence => true, :allow_blank => true, :uniqueness => { :case_sensitive => false }

我对同时使用 presence => trueallow_blank => true 感到有点困惑。

如果不使用allow_blank => true,这两个规则将同时检查,而不是逐步检查。

为什么allow_blank => true有这样的魔力?

最佳答案

你所得到的与此等效(为了清晰起见,将其包裹起来):

validates :email, :presence => true, 
:uniqueness => { :allow_blank => true, :case_sensitive => false }

这有点愚蠢,因为如果您需要存在,那么这将使 :allow_blank 子句“无效”为 :uniqueness

当您切换到使用其他验证器时,它更有意义......比如说......格式唯一性,但如果它为空,您不希望进行任何检查。在这种情况下,添加“全局应用”:allow_blank 更有意义,并且 DRY 可以稍微提高代码的质量。

这个...

validates :email, :format => {:allow_blank => true, ...}, 
:uniqueness => {:allow_blank => true, ...}

可以写成:

validates :email, :allow_blank => true, :format => {...}, :uniqueness => {...}

关于ruby-on-rails - 了解 Rails 验证 : what does allow_blank do?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14488465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com