Ruby on rails Rails NoMethodError(对于Hyperclient:Module,未定义方法“new'”)
这是一个相当“新手”的问题,但我一直在搜索,似乎找不到任何东西来解决在rails应用程序中使用的错误,在我的模型的方法中 每当我运行Ruby on rails Rails NoMethodError(对于Hyperclient:Module,未定义方法“new'”),ruby-on-rails,rubygems,Ruby On Rails,Rubygems,这是一个相当“新手”的问题,但我一直在搜索,似乎找不到任何东西来解决在rails应用程序中使用的错误,在我的模型的方法中 每当我运行rails c时,我都会收到错误消息 NoMethodError(对于Hyperclient:Module,未定义方法“new”) 在我的文件中 gem "hyperclient" --运行了bundle安装 在modelapp/models/artwork.rb中 class Artwork < ApplicationRecord require
rails c
时,我都会收到错误消息
NoMethodError(对于Hyperclient:Module,未定义方法“new”)
在我的文件中
gem "hyperclient"
--运行了bundle安装
在modelapp/models/artwork.rb中
class Artwork < ApplicationRecord
require "hyperclient"
def self.test_artsy
api = Hyperclient.new('https://api.artsy.net/api') do |api|
puts api
end
end
end
class Artwork
我已经看过了,并且看到他们确实有一个.new的方法(也在他们的示例中),所以我知道这是我做得不正确的,但我不确定还有什么可以尝试的
在终端中打开irb时,代码确实起作用。您的
Gemfile
中没有指定任何版本,因此可能会发生Bundler
不会安装最新版本的情况,我猜这就是此处可能发生的情况
您可以通过执行以下操作来检查安装了哪个版本:
cat Gemfile.lock | grep hyperclient
您在此处至少有两个选项:
(一)
bundle update hyperclient
-这将更新您的Gemfile.lock
至最新版本
(二)
捆绑删除超级客户端
bundle add hyperclient--version“0.9”
-这将更新您的Gemfile,然后运行bundle install
,重新生成您的Gemfile.lock
建议使用第二个选项,因为始终为正在使用的gems指定版本是一种良好的做法。您在
Gemfile
中未指定任何版本,因此可能会发生Bundler
无法安装最新版本的情况,我猜这就是此处可能发生的情况
您可以通过执行以下操作来检查安装了哪个版本:
cat Gemfile.lock | grep hyperclient
您在此处至少有两个选项:
(一)
bundle update hyperclient
-这将更新您的Gemfile.lock
至最新版本
(二)
捆绑删除超级客户端
bundle add hyperclient--version“0.9”
-这将更新您的Gemfile,然后运行bundle install
,重新生成您的Gemfile.lock
建议使用第二个选项,因为始终为您使用的gems指定版本是一个很好的做法。非常感谢!这无疑让我走上了正确的道路,看起来我不得不对Hyperclient也使用的gem“Faraday”做一些额外的更新——卸载并重新安装这两个gem,并将gem文件更新为
gem“Hyperclient”、“~>0.9.1”gem“Faraday”、“~>0.17.3”
,现在一切都按照我的意愿运行了!我很高兴能帮上忙!非常感谢你!这无疑让我走上了正确的道路,看起来我不得不对Hyperclient也使用的gem“Faraday”做一些额外的更新——卸载并重新安装这两个gem,并将gem文件更新为gem“Hyperclient”、“~>0.9.1”gem“Faraday”、“~>0.17.3”
,现在一切都按照我的意愿运行了!我很高兴能帮上忙!