2014-08-30 31 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