2012-10-16 34 views
1
设置变量

我已经定义了一些变量:西纳特拉/红宝石:访问从型号

class App < Sinatra::Base 

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

我想从我的模型都与

options.public_folder 

settings.public_folder 

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

+0

“relative”方法在哪里定义?不应该'set:views,'。/ views''够了吗? – pje

+0

你的模型在哪里?你的模型对'App'类有什么了解吗? – halfelf

+0

您是否尝试将它们放置在'configure do ... end'块中? –

回答

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 __在这里也很有用。

相关问题