【问题标题】:Can't use gem library even though require statement works即使 require 语句有效,也无法使用 gem 库
【发布时间】:2010-11-24 00:04:56
【问题描述】:

我正在尝试在脚本中使用 activeSupport 的空白方法并收到错误“未定义的方法'空白?'对于“废话”:字符串(NoMethodError)“。 Ruby 的 require 语句没有问题,但我无法使用该库。

require "rubygems"
require "active_support"

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

【问题讨论】:

    标签: ruby activesupport


    【解决方案1】:

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

    require 'rubygems'
    require 'active_support/core_ext/object/blank'
    
    puts 'blank!' if 'blah'.blank?
    

    如果您想要一切,请使用

    require 'active_support/all'
    

    实际上,在现代版本的 Ruby 中,您也可以去掉 require 'rubygems'。即使在旧版本中,您也不应该将其放在那里,因为它会强制您的代码的每个用户都使用 RubyGems,并且无法在没有 RubyGems 的环境中使用。

    【讨论】:

    • 确实解决了这个问题!我尝试使用的 gem 没有指定特定版本的 activesupport。
    【解决方案2】:

    嗯,我刚试过,效果很好(没有打印任何东西)。

    【讨论】:

      猜你喜欢
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      相关资源
      最近更新 更多