Singleton in scope of a request in rails [closed]
Since a request is tied to a thread, you can use Thread
local store:
class RequestSingleton def self.instance Thread.current['request-singleton'] ||= RequestSingleton.new end def self.clear Thread.current['request-singleton'] = nil endend
Usage:
def index RequestSingleton.instance.do_some_setup # ... RequestSingleton.clearend
...and anywhere else simply use RequestSingleton.instance
to access it.
Since it is thread local, there are no synchronization issues.