2012-03-05 42 views
0

我补充这Gemfile中:Omniauth +设计错误:找不到HASHIE-1.2.0

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. 

我认为打捆应该解决并满足所有的依赖关系,但我想这个反正:

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'。没有运气。

+0

更新:当我推到Heroku时没问题。我猜在我的环境中有些东西是腐败的。建议如何弄清楚什么?这里有一些基本的env信息:[Rails 3.2.2 | ruby 1.9.3p0(2011-10-30修订版33570)[x86_64-darwin11.3.0] |宝石1.8.10 | Bundler版本1.0.22] – 2012-03-06 21:05:21

回答

0

我明白了。我认为这是捆绑商的一些问题。我做了一些不同的事情,我不得不承认,我不是100%确定它是什么修复它。我认为它干了什么是这样的:

gem uninstall bundler 
gem install bundler 
bundle install mail 

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

0

所以我认为你只是错误地使用bunder。

bundle update不能解决新的依赖,它只是着眼于创业板的表现,这是存储在Gemfile.lock和更新这些宝石到最近的宝石由Gemfile对它们的约束允许。

既然你要安装一个新的宝石,你怎么跑是bundle install这将使您的Gemfile和你Gemfile.lock之间的比较,并安装未在您的Gemfile.lock列出的任何宝石。

我认为bundle install应该为你做。

作为一个附注,bundler试图通过将bundle改为bundle install来尽可能简化您的操作。所以,除非你明确想要更新你的宝石,否则你可以输入bundle并获得你期待的行为。

+0

抱歉,我没有提供足够的信息。我运行了bundle install,然后捆绑了更新。我多次做了这个。同样的错误。 – 2012-03-05 22:28:43

+0

好的,有趣。那么,在这种情况下,在omniauth-facebook之前将hashie添加到您的Gemfile中。 'gem'hashie','〜> 1.2。0'' – TheDelChop 2012-03-05 23:33:32

+0

是的,我已经试过,除了我使用的版本号,并在文件的末尾。无论如何,我就像你说的那样尝试了,而且我仍然遇到了错误。 – 2012-03-05 23:54:36