我正在使用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项目中使用代码而只是在终端中运行命令时,它工作正常。
答案 0 :(得分:18)
假设您正在使用https://github.com/rest-client/rest-client (因为您没有指定),那么您的require
行应
require 'rest-client'
根据README。此外,请确保在将gem添加到Gemfile
并运行bundle
后重新启动rails服务器。
答案 1 :(得分:6)
在终端中运行以下命令:
gem install rest-client
并使用require 'rest-client'
。无需更改为rest_client。
答案 2 :(得分:4)
就我而言,这个帖子中的解决方案都没有工作
什么工作,是直接在Gemfile
:
gem 'rest-client'
关闭rails server
后退出rails console
并运行bundle install
,
我再次打开了rails console
,这次require 'rest-client'
完美地工作了
答案 3 :(得分:0)
首先确保您已安装gem 'rest-client'
,〜>宝石文件上的 1.8.0 。运行bundle install然后require 'rest_client'
。这对我有用。
答案 4 :(得分:0)
对我来说这是捆绑的问题(我以为我已安装)。嘘声警报,我没有,这就是我修复它的方式。我在运行OS X Yosemite的Mac上使用我的终端版本是Darwin内核版本14.3.0:
cd
sudo gem install bundler
或
require 'rest-client'
如果你得到以下错误:
错误:执行gem时...(Gem :: FilePermissionError) 您没有/Library/Ruby/Gems/2.0.0目录的写权限。
最后,更改您的需求行:
require 'rest_client'
到
strsplit(string, '(\\b\\S+\\b)(?=.*\\b\\1\\b.*)', perl=TRUE)[[1]]
##[1] "You know that song "
#[2] " had a little lamb? Mary is my friend."
然后运行你的代码!
答案 5 :(得分:-1)
尝试require 'rest_client'
,而不是require 'rest-client'