動的ディスパッチを使用して、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...) に関係なくうまく機能しますが、2 回目の呼び出しでは常に失敗します。
なぜこれが起こっているのか、そしてそれを修正するために何ができるのかを理解したいと思います.