2010-11-24 65 views
0

我想在脚本中使用activeSupport的空白方法,并得到错误“未定义的方法”为空? for“blah”:String(NoMethodError)“。 Ruby对require语句没有问题,但我无法使用该库。尽管需要语句工作,但不能使用宝石库

require "rubygems" 
require "active_support" 

if "blah".blank? 
    puts "blank!" 
end 

回答

2

您正在使用哪个版本的ActiveSupport?在当前版本中,默认情况下,它不再将每个特征加载到名称空间中。相反,您可以选择和确切选择您需要的功能。你的情况:

require 'rubygems' 
require 'active_support/core_ext/object/blank' 

puts 'blank!' if 'blah'.blank? 

如果你想一切使用

require 'active_support/all' 

其实,在Ruby中的现代版本,你可以摆脱require 'rubygems'为好。甚至在旧版本中,你也不应该那样做,因为它会强制你的代码的每个用户使用RubyGems,并且使RubyGems不可用的环境中无法使用。

+0

这确实解决了它!我试图开始工作的宝石没有指定特定版本的activesupport。 – user518175 2010-11-27 16:32:40

0

嗯,我只是试过这个,它工作正常(没有打印任何东西)。