Это легко. Просто посмотрите на ответ, который возвращается. :)
Два варианта:
- У вас есть исходный файл на вашем компьютере. Отредактируйте это. Положите
puts response.inspect
в соответствующем месте. Не забудьте удалить его.
- В Ruby есть открытые классы. Найдите правильный метод и переопределите его, чтобы делать именно то, что вы хотите, или используйте псевдонимы и вызовите цепочку для этого. Вероятно, есть метод, который возвращает ответ - возьмите его, распечатайте, а затем верните.
Вот глупый пример последнего варианта.
# 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
Представьте, что первое определение класса находится в исходных файлах ActiveRecord. Определение второго класса где-то в вашем приложении.
$ irb -r openclasses.rb
>> Network.new.get
I'm a request!
=> "I'm a request!"
Вы можете видеть, что он печатает его, а затем возвращает его. Аккуратно, да?
(И хотя мой простой пример не использует его, поскольку он не использует Rails, проверьте alias_method_chain
для объединения ваших вызовов псевдонимов.)