Sinatra / Ruby:从Model访问set变量

时间:2012-10-16 20:52:38

标签: ruby sinatra

我定义了一些变量:

class App < Sinatra::Base

  set :public_folder, relative('public')
  set :views, relative('views')

我尝试使用

从我的模型中访问它们
options.public_folder

settings.public_folder

它们似乎都不存在于模型的范围内。我怎样才能访问其他人?

1 个答案:

答案 0 :(得分:1)

以下是工作示例:

class App < Sinatra::Base
…
  configure do
    set :public_folder, File.expand_path(File.join(File.dirname(__FILE__), "public"))
    set :root, File.expand_path(File.dirname(__FILE__))
  end
…
end

以下是如何在视图中访问此设置的示例。在我的例子中,这是HAML:

%p= settings.public_folder
%p= settings.root

页面显示:

/Users/sashaegorov/Development/ruby/rvs/public
/Users/sashaegorov/Development/ruby/rvs

我的系统中哪条路径正确。

注意: File.expand_path()效果非常好,它总是有助于获得文件或文件夹的真实路径。 __ FILE __ 在这里也很有用。