我正在尝试在脚本中使用 activeSupport 的空白方法并收到错误“未定义的方法'空白?' 对于“废话”:字符串(NoMethodError)“。Ruby 的 require 语句没有问题,但我无法使用该库。
require "rubygems"
require "active_support"
if "blah".blank?
puts "blank!"
end
我正在尝试在脚本中使用 activeSupport 的空白方法并收到错误“未定义的方法'空白?' 对于“废话”:字符串(NoMethodError)“。Ruby 的 require 语句没有问题,但我无法使用该库。
require "rubygems"
require "active_support"
if "blah".blank?
puts "blank!"
end
您使用的是哪个版本的 ActiveSupport?在当前版本中,默认情况下它不再将每个功能都加载到命名空间中。相反,您可以准确选择您需要的功能。在你的情况下:
require 'rubygems'
require 'active_support/core_ext/object/blank'
puts 'blank!' if 'blah'.blank?
如果你想要一切,请使用
require 'active_support/all'
实际上,在现代版本的 Ruby 中,你也可以去掉require 'rubygems'
。即使在旧版本中,您也不应该将其放在那里,因为它会强制您的代码的每个用户都使用 RubyGems,并且无法在 RubyGems 不可用的环境中使用。
嗯,我刚试过,效果很好(没有打印任何东西)。