我不确定这是我可以使用的最佳主题名称,但是在sinatra + rack中有没有办法使用类似php + apache方式的类/模块?我的意思是有一种方法可以在请求范围内使用Singleton或任何其他静态类型变量吗?我需要(想要的)是:
class Config # might be just module
# some methods that are request scoped
# cant be shared between users/reuqest
def server_settings
# possible server dependent settings
# can be shared between requests on same server
end
end
class Something
def do_thing
# I would like to access Config class here without passing it as parameter
# setted up for the current request
end
end
class MyController < Sinatra::Base
# request handling, creates Config class, setting up request parameters once
def handle_it
Something.new.do_thing
end
end
这里没有导轨我对我可以做的事情/我可以使用的宝石非常有限。 MyController来自内部框架。我可以延长它。 Php + apache在每个请求都没有任何要求,因此除非您使用会话/ cookie,否则所有代码都是请求。
我之所以要使用它,是为了避免将配置实例(或任何其他类型的数据存储库)作为参数传递给其他所有实例,只需将其“全局”访问即可。
答案 0 :(得分:0)
我认为您正在寻找类似这样的回答Page Views counter sinatra? tl; dr版本正在使用set
set :my_config_property, 'hello world'