我在轨道中添加了宝石,但它仍然说宝石丢失了?

时间:2010-12-03 01:28:21

标签: ruby-on-rails rubygems omniauth

我输入了以下内容:

gem install omniauth

在我的environment.rb文件中,我也有:

config.gem "omniauth"

但是,我收到了这些错误:

no such file to load -- omniauth/core
Missing these required gems:
  omniauth

我很困惑:我做了一个rake gems:安装并且没有出错(我也没有收到回复消息)。但后来我尝试运行脚本/服务器,它说我需要做rake gems:install!

当我从environment.rb中删除config.gem“omniauth”时,我得到了这个:

c:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:443:in `load_missing_constant': unin
itialized constant OmniAuth (NameError)

5 个答案:

答案 0 :(得分:3)

现在Rails 3正在使用bundler,您需要明确表示您希望访问应用中的特定gem。要执行此操作,请转到Gemfile(在项目的根目录中)添加以下行:

gem 'omniauth'

然后在项目目录中运行bundle install,你应该好好去。 bundle install只是确保在当前系统上安装所有gem和依赖项。祝你好运!

答案 1 :(得分:1)

建议:

执行“gem list”并查看是否列出了omniauth。 做“gem env”并查看宝石的安装位置以及这些位置是否是宝石路径的一部分。

抱歉,现在不能提供更多帮助..

答案 2 :(得分:1)

奇怪。我自己并不熟悉oauth,但你可以检查两件事:

首先你可以试试

rake gems:install

在您的应用根目录中。如果所有依赖项都已正确安装,则不应报告任何内容。

其次,您可以进入控制台并输入

require 'omniauth'

require 'omniauth/core'

模块是否加载?你能从控制台上使用它吗?有时启动服务器时,加载模块或依赖项的错误不会显示,但它们会显示在控制台中。

答案 3 :(得分:1)

我遇到了同样的问题。我怀疑这是一个Rubygems问题 我所要做的就是切换到使用 rvm 它管理多个ruby版本,包括适当版本的Rubygems 它从源代码下载并构建所需的ruby版本,因此请务必先安装所有必需的依赖项 这解决了我的问题。

答案 4 :(得分:0)

我在使用Rails 2.3时遇到了同样的问题。使用bundler解决了这个问题。