我有一个继承自Sinatra::Base
的类App
和我在App
中与helpers AppHelper
一起使用的模块AppHelper
。如何从AppHelper
访问App
中定义的设置?
# 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
不幸的是,这会产生
NoMethodError at /
undefined method `message' for App:Class
我如何从我的助手模块访问设置?
尝试切换依赖项的顺序:
helpers AppHelper
set :message, "Hello, World!"
我的实际代码与我的示例有点不同(我认为这无关紧要)。我在config.ru中定义了我的设置,所以dax的答案不适用于我的应用程序。我能够通过使用Sinatra::Application.settings
而不是settings
来解决这个问题。