Ruby rails方法链接上下文

Ruby rails方法链接上下文,ruby,ruby-on-rails-3,eventmachine,chaining,Ruby,Ruby On Rails 3,Eventmachine,Chaining,我有可能是一个基本的Q,但它似乎在设置复杂。我有一个模块,它有一些类。一个类包含用于API调用的方法。其他类描述服务器。例如,Dev有它的属性。服务器类继承包含所有API调用的类。我使用server类的一个实例来使用其中一个方法,然后对其应用EventMachine方法。以下是服务器类的子集: class PulseDev < ApiMethods def base_uri "http://myserver.com/api" end end 好的,我的错误是Api

我有可能是一个基本的Q,但它似乎在设置复杂。我有一个模块,它有一些类。一个类包含用于API调用的方法。其他类描述服务器。例如,Dev有它的属性。服务器类继承包含所有API调用的类。我使用server类的一个实例来使用其中一个方法,然后对其应用EventMachine方法。以下是服务器类的子集:

 class PulseDev < ApiMethods
   def base_uri
    "http://myserver.com/api"
   end
 end
好的,我的错误是ApiMethods::PulseDev:Class的未定义方法“post” 它指向我的get_json_api_post_响应方法中的post


我的问题是:我知道它在ApiMethods::Dev的上下文中,这就是self.base_uri工作的原因,但是我应该如何处理该process_response方法中的post,以便它与EventMachine绑定?关于方法链接有什么我没有看到的吗?在错误输出中,我可以验证http是否正在显示EventMachine对象,因此新方法似乎正在工作。谢谢您的时间,sam

答案是更仔细地查看错误消息。process\u response方法实际上是调用EventMachine方法并处理其:body的方法。所以它是用一个不必要的电话写的

 Class ApiMethods
   def get_json_api_post_response(url, post_obj={})
     http = EM::Synchrony.sync EventMachine::HttpRequest.new(self.base_uri+"#{url}").post(:body => post_obj)
     process_response self.class.post(url, :body => post_obj).body
   end

       def process_response(result)
         response = ActiveSupport::JSON.decode(result)
           if response["code"].to_i == 200
             ToolResult.new(true, response["result"], 200)
           else
             ToolResult.new(false, response["result"], response["code"])
           end
         end
        end

 Class ToolResult < Struct.new(:success, :result, :code)
 end
 http = ApiMethods::Dev.new.get_json_api_post_response('/handshake', @j)