这可能是一个简单的问题,但我注意到了一些错误从具有空值,而不是尼尔斯获得...轨尼尔斯
如果用户离开领域的空白在一个标准的Rails应用程序是有一种将数据库中的字段设置为NULL而不是输入空值的方法?
基本上这样的检查像@ model.info.nil?返回true而不必检查它是否为空和空?
这可能是一个简单的问题,但我注意到了一些错误从具有空值,而不是尼尔斯获得...轨尼尔斯
如果用户离开领域的空白在一个标准的Rails应用程序是有一种将数据库中的字段设置为NULL而不是输入空值的方法?
基本上这样的检查像@ model.info.nil?返回true而不必检查它是否为空和空?
我用var.blank?因为我得到这些结果对Ruby 1.8中运行一个Rails 3控制台:
>> nil.blank?
=> true
>> [].blank?
=> true
>> nil.empty?
NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.empty?
from (irb):4
历史上,我还没有见过.empty?为零对象工作。
编辑作为brokenbeatnik指出,我迷茫blank?
与empty?
,是我不好。
您不必检查都零和空值。即使为零,也会返回true
(请参阅API文档)。所以,我通常会发现使用空检查更方便。
但是,如果你不想这样做,你可以使用active record callbacks将空值转换为nils。每次保存对象之前,都会提供类似于attribute = nil if attribute.empty?
的内容。
谢谢指出,它应该是空白的?确实。 – 2010-09-03 19:25:37