我正在使用动态调度在从 ActiveResource 继承的类中定义几个类方法。
class Invoice < ActiveResource::Base
self.site = 'http://localhost:8080/'
def self.define(method)
define_singleton_method(method) do |params = {}|
site = self.site
self.site = "#{self.site}/Invoice/#{method.to_s.camelize(:lower)}"
puts "self.site -> #{self.site}"
results = Invoice.all(params: params)
self.site = site
puts "changing self.site back to #{site}"
return results
end
end
define :get_details
define :put_approval
define :get_attachment
define :get_pending_notifications
end
这适用于第一次通话,无论它是什么(Invoice.get_details、Invoice.get_pending_notifications...),但在第二次通话时总是失败。
我想了解为什么会发生这种情况以及我可以做些什么来解决它。