即使require语句有效,也无法使用gem库

时间:2010-11-24 00:04:56

标签: ruby activesupport

我正在尝试在脚本中使用activeSupport的空白方法并将错误“未定义的方法”设为空白? for“blah”:String(NoMethodError)“。 Ruby没有require语句的问题,但我不能使用该库。

require "rubygems"
require "active_support"

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

2 个答案:

答案 0 :(得分: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不可用的环境中使用。

答案 1 :(得分:0)

嗯,我刚尝试了这个并且工作正常(没有打印任何东西)。