2014-08-30 53 views
1

空白我有以下幾點:這是爲什麼不工作,未定義字符串中的紅寶石

input = gets.chomp 
    basket = input.strip.split(',') 
    basket.delete_if(&:blank?) 

它應該讓你做的事:cat, dog,,

從那裏我們可以拆分了,剝離乾淨並將其拆分爲,,然後檢查空元素並將其刪除。

但這段代碼給了我一個錯誤:delete_if: undefined method 'blank?' for "cat":String (NoMethodError)這對我沒有任何意義。我認爲空白的全部目的?還是空的?如果這是真的,那就去除這個元素。

回答

3

blank?是從rails增加到String類的方法。這不是默認情況下類的紅色String的一部分。

4

ActiveSupport隨Rails的增加blank?方法String和許多其他類。由於此方法不是Ruby核心的一部分,因此您需要安裝Rails或ActiveSupport gem。如果安裝了寶石比你能要求的ActiveSupport的核心擴展這樣的:

> 'foo'.blank? 
# => NoMethodError: undefined method `blank?' for "foo":String 

> require 'active_support/core_ext' 
# => true 

> 'foo'.blank? 
# => false 
3
require 'active_support' 
require 'active_support/core_ext' 

進口「active_support」第一

+1

請考慮編輯您的文章添加你的代碼做什麼更多的解釋,爲什麼它將解決問題。一個主要包含代碼的答案(即使它正在工作)通常不會幫助OP瞭解他們的問題。 – Drenmi 2015-11-04 09:19:36