如何从外部配置 Sinatra 应用程序?

How to configure Sinatra app from the outside?

这是我的代码:

require 'sinatra/base'
class Front < Sinatra::Base
  get '/' do
    settings.foo
  end
end

我运行是这样的:

app = Front.new
app.set(:foo, 'Hello, world!') // doesn't work!
app.run!

我想以某种方式将 foo 注入应用程序并在 运行 之前预配置 other params。我得到:

undefined method `set' for #<Sinatra::Wrapper:0x007fea3729a990>
Did you mean?  send (NoMethodError)

怎么了?

您必须在初始化之前通过选项。以下应该有效:

Front.set :foo, 'Hello, world!'
app = Front.run!

我已经在我的一个项目中这样做了:https://github.com/alexdovzhanyn/odyn/blob/f6f88d68dd9738b4857c26c185829ccd1190d423/nodelauncher.thor#L7