ruby - 将参数传递给新的 sinatra 应用程序

标签 ruby sinatra rack

简单的问题:我希望能够在 config.ru 中将选项传递到我的 sinatra 应用程序中。这怎么可能?我的 config.ru 看起来像这样:

run MyApp

但我想在我的 MyApp 类中使用它来接受参数:

class MyApp < Sinatra::Base
  def initialize(config)
    @config = config
  end
end

但是我想不出一个办法来做到这一点。想法?

最佳答案

  1. 使用 set/settings

    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
    
  2. 使用配置文件。参见 Sinatra::ConfigFile在 contrib 中(它也使用 set 和 settings,但从 YAML 文件加载参数)

关于ruby - 将参数传递给新的 sinatra 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9657202/

相关文章:

ruby-on-rails - Rails 新手——Webrat 方法在集成测试中不起作用

ruby-on-rails - 限制 has_many 关系中关联数量的最佳实践?

ruby - 如何使用 ruby​​ 检测文件系统事件

ruby - 无法将 sinatra 作为 .class 文件运行

ruby - 暂停在 Before filter 仍然进行到 After filter

ruby - 在 Sinatra 和 Thin 上下载大文件时内存消耗高

ruby-on-rails - 在 Rails/Rack 中禁用 Content-Type header

ruby - 如何从本地子目录加载 gem ?

ruby - 更新 jekyll 站点

ruby - Sinatra/Thin 运行且无法使用 Ctrl-C 停止