我正在使用動態分派在繼承自ActiveResource的類中定義幾個類方法。更改動態方法中的實例變量(使用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 ...)的偉大工程,但始終未能在第二個呼叫。
我想了解爲什麼會發生這種情況,以及我可以如何解決問題。
我只是試過你有什麼,它似乎並沒有爲我工作。第二次調用時,我得到ActiveResource :: ForbiddenAccess或ActiveResource :: ServerError,具體取決於我首先調用的方法。 – Jeremiah