Omniauth + Devise错误:找不到hashie-1.2.0

时间:2012-03-05 20:45:12

标签: ruby-on-rails-3 devise omniauth

我将其添加到Gemfile:

gem 'omniauth-facebook'

然后我跑bundle update。到目前为止没问题。但是当我运行rails server时,我收到了这个错误:

Could not find hashie-1.2.0 in any of the sources
Run `bundle install` to install missing gems.

我认为Bundler应该解决并满足所有依赖关系,但我还是尝试了这个:

gem install hashie-1.2.0

这给了这个:

ERROR:  Could not find a valid gem 'hashie-1.2.0' (>= 0) in any repository
ERROR:  Possible alternatives: hashie-model

我是Rails的新手,我觉得自己已经走到了尽头。建议?

更新:我也多次运行bundle install(确切地说是bundle install --without production)。在此之后运行rails server时会出现同样的错误。

更新:我在omniauth-facebook之前尝试在Gemfile中添加gem 'hashee'。没有运气。

2 个答案:

答案 0 :(得分:0)

所以我认为你只是错误地使用了发夹。

bundle update无法解析新的依赖关系,它只是查看存储在Gemfile.lock中的gem清单,并通过放在它们上的约束将这些gem更新为最新的gem允许。 Gemfile

由于您正在尝试安装新的gem,所以您要运行的是bundle install,它会对您的GemfileGemfile.lock进行比较并安装任何不是宝石的宝石列在您的Gemfile.lock

我认为bundle install应该为你做好准备。

作为旁注,bundler会尝试通过将bundle别名化为bundle install来让您尽可能轻松。因此,除非您明确要更新您的宝石,否则只需键入bundle并获得您期望的行为。

答案 1 :(得分:0)

我得到了它的工作。我认为这是捆绑器的一些问题。我做了一些不同的事情,我不得不承认,我并不是100%肯定是什么修复它。我想是这样做的:

gem uninstall bundler
gem install bundler
bundle install mail

然而,直到我第二次重新安装它才行。在安装命令后,它安装了所有内容,而不仅仅是邮件及其依赖项。我做的唯一其他事情是在第一次重新安装后删除/usr/bin/bundler。它没有再出现。