从帮助程序模块访问Sinatra设置

时间:2014-08-14 09:55:15

标签: ruby sinatra

我有一个继承自App的{​​{1}}课程,以及Sinatra::Base中与AppHelper一起使用的模块helpers AppHelper。如何从App

访问App中定义的设置

以下是一些示例代码:

AppHelper

这是帮助者:

# app.rb
require "sinatra"
require "./helper"

class App < Sinatra::Base

  set :message, "Hello, World!"
  helpers AppHelper

  get "/" do
    helper_method
  end
end

if __FILE__ == $0
  App.run! port: 4567
end

不幸的是,这会产生

# helper.rb
module AppHelper

  def helper_method
    settings.message
  end
end

如何从助手模块访问设置?

2 个答案:

答案 0 :(得分:1)

尝试切换依赖项的顺序:

helpers AppHelper
set :message, "Hello, World!"

答案 1 :(得分:0)

我的真实代码与我的例子有点不同(我认为这无关紧要)。我在config.ru中定义我的设置,所以dax的答案对我的应用程序不起作用。我能够使用Sinatra::Application.settings代替settings解决该问题。