httparty上的未定义方法base_uri

时间:2016-07-08 19:55:49

标签: ruby-on-rails httparty

我正在使用httparty来创建一个gem,以允许用户从站点获取auth_token。

我需要做POST方法会话:

POST https://www.mysite.io/api/v1/sessions

后面是body

中的电子邮件和密码(都是字符串)

这就是我所拥有的:

require 'httparty'

class Gemname
  include HTTParty
  base_uri "https://www.mysite.io/api/v1/sessions"

  def initialize(email, password)
    response = self.class.post(self.base_uri, body: {"email": email, "password": password}) 
    raise InvalidStudentCodeError.new() if response.code == 401
    @auth_token = response["auth_token"]
  end

end

Gemname在irb上工作正常。但是,我在输入电子邮件和密码时遇到问题。每当我Gemname.new("myemail@email.com", "mypassword")时,我都会遇到NoMethodError: undefined method base_uri'。错误。

如何修复我的代码,以便我能够将我的电子邮件和密码识别为正确传递给self.class.post

1 个答案:

答案 0 :(得分:1)

您的示例中的

self.base_uri指的是正在构建的实例的成员,而HTTParty的base_uri是一种类方法。

您可以通过以下方式访问它:

self.class.base_uri