我可以在网站的应用程序类之外访问Sintra设置吗?

时间:2013-03-06 15:48:48

标签: ruby sinatra

Website类中,我可以获得root settings.root。在课外,我看不到如何获得类对象的句柄。

我可以在路由块中插入一个实例变量@root = settings.root,这将使根可用于HAML。这是正确的方法吗?

class Website < Sinatra::Base
  configure do
    set :root, File.dirname(__FILE__)
  end
  get '/' do
    haml :index, :layout => :base
  end

1 个答案:

答案 0 :(得分:1)

我认为正确的方法是使用:locals哈希作为haml调用的参数,如下所示:

class Website < Sinatra::Base
  configure do
    set :root, File.dirname(__FILE__)
  end
  get '/' do
    haml :index, :layout => :base, :locals => {:root_path => settings.root}
  end
end

在视图的模板中,您可以访问root_path变量。