5

我输入了以下内容:

gem install omniauth

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

config.gem "omniauth"

但是,我收到这些错误:

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

我很困惑:我做了一个 rake gems:install 并且没有收到错误(我也没有收到消息)。但后来我尝试运行脚本/服务器,它说我需要做 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)
4

5 回答 5

3

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

gem 'omniauth'

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

于 2010-12-03T01:30:25.857 回答
1

建议:

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

抱歉,现在无法提供更多帮助..

于 2010-12-04T21:48:41.703 回答
1

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

首先你可以试试

rake gems:install

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

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

require 'omniauth'

require 'omniauth/core'

模块是否加载?你可以从控制台使用它吗?有时,当您启动服务器时,加载模块或依赖项的错误不会出现,但它们会出现在控制台中。

于 2010-12-05T21:58:15.580 回答
1

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

于 2011-01-03T20:06:33.777 回答
0

我对 Rails 2.3 也有同样的问题。使用捆绑器解决了这个问题。

于 2011-08-22T12:13:15.323 回答