Ron*_*nze 20 ruby rack sinatra
简单的问题:我希望能够在config.ru中将选项传递到我的sinatra应用程序中.怎么可能?我的config.ru看起来像这样:
run MyApp
Run Code Online (Sandbox Code Playgroud)
但我想在我的MyApp类中使用它来获取参数:
class MyApp < Sinatra::Base
def initialize(config)
@config = config
end
end
Run Code Online (Sandbox Code Playgroud)
但我无法想办法做到这一点.想法?
rni*_*son 24
使用设置/设置
require 'sinatra/base'
class MyApp < Sinatra::Base
get '/' do
settings.time_at_startup.to_s
end
end
# Just arbitrarily picking time as it'll be static but, diff for each run.
MyApp.set :time_at_startup, Time.now
run MyApp
Run Code Online (Sandbox Code Playgroud)使用配置文件.请参阅contrib中的Sinatra :: ConfigFile(它也使用set和settings,但从YAML文件加载params)
如果你想用params配置,我发现你可以这样做:
require 'sinatra/base'
class AwesomeApp < Sinatra::Base
def initialize(app = nil, params = {})
super(app)
@bootstrap = params.fetch(:bootstrap, false)
end
end
Run Code Online (Sandbox Code Playgroud)