【发布时间】:2014-06-23 14:36:21
【问题描述】:
这个问题是Uninitialized constant Instagram 的副本,但有一些不同的细节(因为没有人真正回答最后一个问题)。我再次有一个使用 Instagram API 的网站。当我尝试运行rails server (当我刚刚添加instagram gem 时),我得到了这种错误:
NameError: uninitialized constant Instagram::Configuration::Faraday
/usr/local/rvm/gems/ruby-2.1.1/gems/instagram-1.0.0/lib/instagram/configuration.rb:29:in `<module:Configuration>'
/usr/local/rvm/gems/ruby-2.1.1/gems/instagram-1.0.0/lib/instagram/configuration.rb:6:in `<module:Instagram>'
/usr/local/rvm/gems/ruby-2.1.1/gems/instagram-1.0.0/lib/instagram/configuration.rb:4:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.1.1/gems/instagram-1.0.0/lib/instagram.rb:2:in `require'
/usr/local/rvm/gems/ruby-2.1.1/gems/instagram-1.0.0/lib/instagram.rb:2:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.5.3/lib/bundler/runtime.rb:76:in `require'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.5.3/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.5.3/lib/bundler/runtime.rb:72:in `each'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.5.3/lib/bundler/runtime.rb:72:in `block in require'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.5.3/lib/bundler/runtime.rb:61:in `each'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.5.3/lib/bundler/runtime.rb:61:in `require'
/usr/local/rvm/gems/ruby-2.1.1@global/gems/bundler-1.5.3/lib/bundler.rb:131:in `require'
/vagrant/Documents/RubyProjects/instagram_example/config/application.rb:14:in `<top (required)>'
/vagrant/Documents/RubyProjects/instagram_example/Rakefile:4:in `<top (required)>'
这与上一个问题完全不同,因为我在 gem 中遇到错误。我尝试使用 Instagram API 克隆 this example,但我得到了同样的错误。我的朋友试图运行这个例子,它对他有用。这是我的Gemfile:
source 'https://rubygems.org'
gem 'rails', '4.1.1'
gem 'pg'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'therubyracer', platforms: :ruby
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'spring', group: :development
gem 'instagram'
gem 'dotenv-rails'
gem 'pry-rails', group: :development
到目前为止,这让我想到,我的 Ubuntu 14.04 运行不佳。
解决方案: 使用安装在主机上的 ruby,而不是安装在 vagrant 或其他虚拟机或虚拟盒子上。
【问题讨论】:
-
您在编辑完 Gemfile 后还记得
bundle install吗? -
当然,我做到了。
-
在上一篇文章中您写了
show command contains * instagram (1.1.1)*,但您的堆栈跟踪正在运行instagram-1.0.0gem。运行gem list|grep instagram。是否安装了多个版本? -
是的,因为正如我在这里所说,我从上面链接中的 repo 克隆了这个项目并尝试对其进行测试。
-
但是如果
bundle show说 1.1.1 并且堆栈跟踪说 1.0.0 您的项目目前运行的版本错误。它在捆绑程序上下文之外运行。您应该运行所有 gem 命令,例如带有bundle exec前缀的 rails 或通过生成的 binstubs
标签: ruby-on-rails ruby ruby-on-rails-4 instagram