为什么Rails无法找到我安装的宝石?

时间:2015-03-23 12:13:40

标签: ruby-on-rails gem

我正在使用Dropbox SDK并在我的Gemfile中添加了gem 'dropbox-sdk','~> 1.6.4',并且我运行了bundle install。我已经通过运行bundle show dropbox-sdk验证了它的安装情况,/Users/Chris/.rvm/gems/ruby-2.2.0@rails4.2/gems/dropbox-sdk-1.6.4显示安装在$ rails console Loading development environment (Rails 4.2.0) 2.2.0 :001 > require 'dropbox-sdk' LoadError: cannot load such file -- dropbox-sdk 中。

问题是我的页面丢失了文件未找到错误,我无法在控制台中要求它。

控制台错误:

LoadError in DashboardsController#monthly_sales_dashboard
No such file to load -- dropbox-sdk

Extracted source (around line #274):

  def require(file)
    result = false
    load_dependency(file) { result = super }
    result
  end
end

页面错误:

{{1}}

最奇怪的部分是它在不久前工作了,从那以后我没有改变任何配置或宝石。

我尝试重新启动Thin甚至重新启动整台计算机,但没有运气。我在类似的问题中检查了Bundler和Rails在每个Tim Moore的答案上的版本是否相同,并且它们都在2.2.0之间运行。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

尽管宝石以破折号命名,但在需要宝石时,您必须使用下划线:

require 'drobbox_sdk'

答案 1 :(得分:2)

除了输入的答案之外,您可以通过在Gemfile中指定要求的名称来加载依赖项,而无需在代码中使用显式require。只需将gem 'dropbox-sdk'替换为:

即可
gem 'dropbox-sdk', require: 'dropbox_sdk'

它的行为与所有其他依赖项一样。