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

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

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

4

6 回答 6

20

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

require 'rest-client'

根据自述文件。此外,请确保在将 gem 添加到您的Gemfile和 running后重新启动您的 rails 服务器bundle

于 2013-07-31T14:58:41.303 回答
7

在终端中运行以下命令:

gem install rest-client

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

于 2016-05-30T07:06:50.283 回答
5

在我的情况下,这个线程中的任何解决方案都
没有起作用,而是直接将 gem 添加到Gemfile

 gem 'rest-client'

关闭rails server,退出rails console并运行后bundle install
我再次打开rails console,这一次require 'rest-client'完美无缺

于 2017-09-06T16:42:05.500 回答
0

首先确保您已在 gem 文件中安装gem 'rest-client', ~> 1.8.0。运行捆绑安装,然后require 'rest_client'. 这对我有用。

于 2015-05-22T08:12:13.860 回答
0

对我来说,这是 bundle 的问题(我以为我已经安装了)。剧透警报,我没有,这就是我修复它的方法。我在运行 OS X Yosemite 的 Mac 上,我的终端版本是 Darwin Kernel Version 14.3.0:

cd
gem install bundler 

或者

cd
sudo gem install bundler

如果您遇到以下错误:

错误:执行 gem 时 ... (Gem::FilePermissionError) 您没有 /Library/Ruby/Gems/2.0.0 目录的写入权限。

最后,将您的需求行从:

require 'rest-client'

require 'rest_client'

然后运行你的代码!

于 2015-06-25T21:38:18.907 回答
-1

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

于 2013-07-31T14:59:43.593 回答