我有一个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