1

私はhttpartyの「モデル」を持っています

myRest = RestModel.new
myRest.someGetResquest()
myRest.somePostRequest()

アクティブモデルと同様に動作するように変更するにはどうすればよいですか?

RestModel.someGetRequest()
RestModel.somePostRequest()

このブログ投稿は、シングルトン モジュールを含める方法を示していますが、それでも次のようにインスタンスにアクセスします。RestModel.instance.someGetRequest()

ここに私のコードがあります:

class Managementdb
    include HTTParty

    base_uri "http://localhost:7001/management/"

    def initialise(authToken)
        self.authToken = authToken
    end

    def login()
        response = self.class.get("/testLogin")
        if response.success?
          self.authToken = response["authToken"]
        else
          # this just raises the net/http response that was raised
          raise response.response    
        end
    end

    attr_accessor :authToken

    ...
end

私がすべて間違ったことをしていると教えてください (光を見せてください)

4

1 に答える 1

3

extendメソッドをインスタンスで使用可能にするのではなくinclude、クラス シングルトンにメソッドを追加します。

class Managementdb
  extend HTTParty
end

これを示すより長い例:

module Bar
  def hello
    "Bar!"
  end
end
module Baz
  def hello
    "Baz!"
  end
end
class Foo
  include Bar
  extend Baz
end

Foo.hello     # => "Baz!"
Foo.new.hello # => "Bar!"
于 2012-03-02T17:18:14.217 に答える