Ruby错误:无法加载文件--rest-client。

19

我正在使用Ruby on Rails 4。

我正在尝试:

require 'rest-client'
在我的控制器中,我想解析从表单获取的登录信息并将其发送到API。 我可以验证该gem已安装,并且也在应用程序根目录的Gemfile中。 然而,当我尝试在我的控制器中加载文件时,它仍然会抛出“无法加载此类文件 - rest-client”的错误。我已经谷歌了这个错误,看到的大多数答案要么是该gem未安装,不在Gemfile中,或两者都不满足。但这里的情况都不是。我的控制器是否由于某种原因无法访问rest-client gem? 我必须使用rest-client,因为API要求如此。 这是我用来安装这个gem的行:
gem install rest-client

这是宝石的主页:https://github.com/archiloque/rest-client
它只是将您重定向到https://github.com/rest-client/rest-client

我还应该注意到,当我不在Rails项目中使用代码而只是在终端中运行命令时,它可以正常工作。


根据Github文档,你需要用下划线来执行'rest_client'的require操作。 - yarakyo
我用同样的结果错误进行了那个更改。 - Jerrod
它出现在捆绑包中。重新启动服务器就可以了。谢谢Abe。 - Jerrod
6个回答

20
假设您正在使用 https://github.com/rest-client/rest-client (因为您没有指定),则您的require行应该是:
require 'rest-client'

根据README。同时,请确保在将gem添加到您的Gemfile并运行bundle之后重新启动您的rails服务器。


1
这已经不适用了。 - poorva
这篇文章发布已经将近3年了。如果你有任何修改建议使其更加相关,请随意提出。 - deefour
好的,你不能进行一个字符的编辑 :) ,请将这个从 require 'rest_client' 改为 require rest-client - poorva

8
在终端中运行以下命令:
gem install rest-client

并使用require 'rest-client'。无需更改为rest_client。


6

在我的情况下,这个帖子中的解决方案均未生效。有效的方法是在Gemfile中直接添加gem:

 gem 'rest-client'

在关闭rails server、退出rails console并运行bundle install之后,
我再次打开了rails console,这一次require 'rest-client'可以完美运行


1

对我来说,这是一个与bundle相关的问题(我认为我已经安装了它)。剧透警告,我没有安装,以下是我如何解决的。我使用的是运行OS X Yosemite的Mac,并且我的终端版本是Darwin Kernel Version 14.3.0:

cd
gem install bundler 

or

cd
sudo gem install bundler

如果您遇到以下错误信息之一:
错误: 在执行 gem 时...(Gem::FilePermissionError) 您没有 /Library/Ruby/Gems/2.0.0 目录的写入权限。
最后,请将您的 require 行更改为:
require 'rest-client'

require 'rest_client'

然后运行你的代码!

0

首先确保你已经在你的 gem 文件中安装了 gem 'rest-client', ~> 1.8.0。运行 bundle install 然后 require 'rest_client'。这对我有用。


-1
尝试使用 require 'rest_client',而不是 require 'rest-client'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接