ruby-on-railsrubyactiveresource

How to view the HTTP response to an ActiveResource request


I am trying to debug an ActiveResource call that is not working.

How can I view the HTTP response to the request ActiveResource is making?


Solution

  • It's easy. Just look at the response that comes back. :)

    Two options:

    Here's a silly example of the latter option.

    # Somewhere buried in ActiveResource:
    class Network
      def get
        return get_request
      end
    
      def get_request
        "I'm a request!"
      end
    end
    
    # Somewhere in your source files:
    class Network
      def print_request
        request = old_get_request
        puts request
        request
      end
      alias :old_get_request :get_request
      alias :get_request :print_request
    end
    

    Imagine the first class definition is in the ActiveRecord source files. The second class definition is in your application somewhere.

    $ irb -r openclasses.rb 
    >> Network.new.get
    I'm a request!
    => "I'm a request!"
    

    You can see that it prints it and then returns it. Neat, huh?

    (And although my simple example doesn't use it since it isn't using Rails, check out alias_method_chain to combine your alias calls.)