我有一個Rails應用程序通過一個包裝器反覆與另一個Web服務器交談,並且我想將包裝器粘貼到Singleton類中,因此不會爲每個請求重新創建它。很容易,我想:Ruby on Rails:將參數傳遞給singleton
class AppWrapper < Wrapper
include Singleton
end
...
wrapper = AppWrapper.instance "url"
只有它不工作:
wrong number of arguments (0 for 1)
/usr/lib/ruby/1.8/singleton.rb:94:in `initialize'
/usr/lib/ruby/1.8/singleton.rb:94:in `new'
/usr/lib/ruby/1.8/singleton.rb:94:in `instance'
Wrapper.initialize需要一個自變量,顯然它沒有得到通過,因爲有關行94說
@__instance__ = new # look Ma, no argument
我該如何解決這個問題?在AppWrapper中重新定義初始化似乎沒有什麼幫助,並且使用Wrapper將「set URL」與「initialize」分開似乎並不理想。
應用程序將永遠不需要多於一個包裝,所以工廠似乎沒有必要。 – jpatokal 2009-12-07 22:36:19