2010-04-02 53 views
8

所以我有一个网络服务器,我用西纳特拉建,肉,其中是这样的:厄尔布与西纳特拉在红宝石

set :variable,"value" 
get '/' do 
    erb :index 
end 

,当然,在views/index.erb的模板,看起来是这样的:

<html> 
<!-- etc --> 
    <ul> 
    <% my_array.each do |thing| %> 
    <%="Something: #{thing}, variable from sinatra: #{settings.variable}"%> 
    <% end %> 
    </ul> 
</html> 

如果您尝试运行这样的代码,您会注意到您无法从erb模板中访问sinatra的设置变量。任何想法如何在保持其简单性的同时实现这一点?

提前致谢!

+0

我问这个问题的哈姆,也许答案会帮助你在erb: http://stackoverflow.com/questions/2129387/how-do-i-get-an-array-of-check-boxes- in-haml – mmr 2010-04-02 18:01:04

+0

我猜这些设置在控制器中可用?如果你想让它们在视图中可用,就必须通过它们。 – 2010-04-02 18:01:27

+1

我的回答是错误的。设置方法应该从视图中可用。你发布的代码对我来说工作得很好。 – mckeed 2010-04-02 19:20:48

回答

2

我用西纳特拉的旧版本 - 更新到1.0版本,它工作得很好:)

谢谢大家!

0

我有一个类似的问题,并且解决方法是确保所有set :x, "y"东西发生在初始化方法之外的类声明(我的子类Sinatra::Base)中。