我输入了以下内容:
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)
答案 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解决了这个问题。