【问题标题】:Using ActiveSupport in Ruby 1.9.2 fails在 Ruby 1.9.2 中使用 ActiveSupport 失败
【发布时间】:2010-11-12 09:35:51
【问题描述】:

我需要像这样的 Ruby 脚本中的 ActiveSupport:

require 'rubygems'
require 'active_support/core_ext/hash'

使用 some_hash.with_indifferent_access。

在 Ruby 1.8 中运行良好,但 Ruby 1.9 抛出以下异常:

<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- active_support/core_ext/hash (LoadError)
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from backup.rb:3:in `<main>'

在 Ruby 1.9.2 中执行此操作的正确方法是什么?

【问题讨论】:

    标签: ruby-1.9 activesupport


    【解决方案1】:

    ruby 1.9.2activesupport 2.3.5 也遇到了同样的问题。跑gem update activesupport,更新到3.2.9,问题就解决了。

    【讨论】:

      【解决方案2】:

      首先,Ruby 1.9 已经包含了 ruby​​gems,所以您不需要包含它。

      其次,这对我来说在 Ruby 1.9.1 和 Ruby 1.9.2 和 ActiveSupport 3.0.3 下工作得很好。您确定在您正在测试的同一 Ruby 环境下正确安装了 activesupport gem 吗? (也许ruby --versiongem list 可能会显示一些错误。)

      【讨论】:

      • 我忘了提到在尝试执行 Cron 作业中的代码时会发生这种情况。我现在将代码包装在“bash -l -c”中,它应该加载整个环境,并希望正确的 gem 路径......如果它有效,将会报告。
      • 不,也没有用。 $PATH 显示所有必要的路径都包括在内,但加载 ActiveSupport 仍然失败......我采取了惰性路线并暂时删除了“some_hash.with_indifferent_access”和 ActiveSupport 要求。任何更多的想法,我很乐意尝试...... :)
      猜你喜欢
      • 2011-10-14
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      相关资源
      最近更新 更多