這可能是一個簡單的問題,但我注意到了一些錯誤從具有空值,而不是尼爾斯獲得...軌尼爾斯
如果用戶離開領域的空白在一個標準的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