2011-03-13 99 views
3

我在Liquid中使用了Sinatra,并且想要在所有模板中使用特定值(Sinatra::Application.environment),而无需在每个get/post中将其定义为本地值。像这样:如何在所有液体模板中创建一个值

在app.rb(我主要的应用程序文件):

# nothing in here about the variable 
get '/some/route' do 
    # or here 
    liquid :my_template 
end 

在app.rb - 我的主应用程序文件,或者是我可以要求/包括:

some_awesome_technique do 
    def app_env 
    Sinatra::Application.environment 
    end 
end 

在任何模板:

<p> 
    {% if environment == :development %} 
    Never see this in production 
    {% end %} 
</p> 

<!-- or even --> 

<p> 
    {% if dev_mode %} 
    Or this... 
    {% endif %} 
</p> 

我真的不关心执行,只要我没有把多余的代码每条路线。提前致谢!

回答

3

像这样的事情会工作

before do 
    @env = Sinatra::Application.environment 
end 
在你的模板

则:

{% if @env == :development %} 
    Boo! 
{% endif %}