小编use*_*303的帖子

如何覆盖gem依赖?

我有2个宝石依赖于相互冲突的hashie版本(一个需要〜> 1.2.0而另一个需要3.3.1):

Bundler could not find compatible versions for gem "hashie":
  In Gemfile:
    restforce (>= 0) ruby depends on
      hashie (~> 1.2.0) ruby

    omniauth (>= 0) ruby depends on
      hashie (3.3.1)
Run Code Online (Sandbox Code Playgroud)

我想保留两个宝石并使用更高版本的hashie.有没有办法覆盖其中一个gem依赖项?

rubygems ruby-on-rails bundler omniauth ruby-on-rails-3

6
推荐指数
1
解决办法
3600
查看次数

NoMethodError: 未定义的方法 `symbolize_keys!' 对于哈希

我正在尝试Hashie在 Rails 之外使用。在我的 rakefile 中,我已经包含了require hashie/hash,但我仍然得到NoMethodError. 我试过使用require hash; 那里也没有运气。

这是它失败的行:

YAML.load(ERB.new(File.read('../prefs.yml')).result)['dev'].symbolize_keys!
Run Code Online (Sandbox Code Playgroud)

当我inspect使用哈希时,它看起来是正确的并采用以下形式:{'key':'value'}. 我希望密钥是一个符号,但我不想在 Rails 3 和 4 之间切换,所以我安装Hashie了它并将其添加到我的 Rakefile 中,但这似乎并没有解决问题。

谁能告诉我为什么我可能会收到此错误?

hash rake ruby-on-rails rakefile

6
推荐指数
1
解决办法
3868
查看次数