将变量传递给Middleman 2中的模板

Gua*_*ard 6 ruby middleman

我有一个Middleman项目,我需要模拟一个登录用户.

足够简单 - 可以在config.rb中设置一些全局变量,如@ user = 1,为登录用户编码所有内容,然后将变量设置为0,并为已注销的用户编写所有内容,如果无处不在

我不是Ruby编码器所以我不明白在哪里挂钩.所以:我如何在中间人的config.rb中设置一个全局app变量?

小智 12

您可以使用page帮助程序在特定路径上设置变量:

page "/my-page.html", :locals => { :is_logged_in => true }
Run Code Online (Sandbox Code Playgroud)

如果您想使用单个模板(包括if用于处理基于内容更改的语句)is_logged_in,您将使用页面代理:

page "/my-page-logged-in.html", :proxy => "/my-page.html", :locals => { :is_logged_in => true }
page "/my-page-logged-out.html", :proxy => "/my-page.html", :locals => { :is_logged_in => false }
Run Code Online (Sandbox Code Playgroud)

对于直接变量,请使用set:

set :is_logged_in, true
Run Code Online (Sandbox Code Playgroud)

在模板中:

<%= is_logged_in %>
Run Code Online (Sandbox Code Playgroud)