我正在使用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>
只要不必在每条路径中放置冗余代码,我就不会真正关心实现。提前谢谢!
答案 0 :(得分:3)
这样的东西会起作用
before do
@env = Sinatra::Application.environment
end
然后在你的模板中:
{% if @env == :development %}
Boo!
{% endif %}