我想有這樣的測試:紅寶石:空白?沒有Rails的
if (line.blank?) do_stuff
...但我在直紅寶石,沒有欄杆。達到同樣效果的公認成語是什麼?
我正在做這個字符串,在那裏測試.empty?與測試.blank不一樣嗎? (所有空格字符串不爲空,但爲空。)
我想有這樣的測試:紅寶石:空白?沒有Rails的
if (line.blank?) do_stuff
...但我在直紅寶石,沒有欄杆。達到同樣效果的公認成語是什麼?
我正在做這個字符串,在那裏測試.empty?與測試.blank不一樣嗎? (所有空格字符串不爲空,但爲空。)
line !~ /[^[:space:]]/
blank?
本質上只是檢查empty? || nil?
。所以你可以自己做空白方法,或者在你的條件中檢查它們。
if line.empty? || line.nil?
您可以在空白的包裝呢?方法在線類
blank?
不僅在字符串定義,它也是無的一部分,因爲它是一個雙重測試。它會檢查變量是否爲nil?
或empty?
/空格。
如果因爲沒有nil?
方法而無法提供字符串,但您可以詢問Nil是否爲nil?
。
有效支持有核心擴展可用,這讓我們挑選所需的功能,幷包括必要的方法。對於blank?
你可以這樣做:
require 'active_support/core_ext/object/blank'
見blank?
更多的信息和閱讀全文,看到的是可用什麼。通過這種方式使用Active Support可以消除加載所有AS的需求,但可以獲得有用的功能。
看看源代碼。 https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/object/blank.rb – Kyle
謝謝,凱爾。在String下找到它。你介意在下面添加這個答案,所以我可以接受它嗎? (不幸的是,到目前爲止提供的兩個答案都不正確,在字符串的上下文中,所有空白的行仍然被測試爲非空。)rails定義只是:def blank? self!〜/ [^ [:space:]]/ end – baudot