将变量传递到Middleman 2模板

6
我有一个Middleman项目,需要模拟已登录的用户。
很简单 - 可以在config.rb中设置一些全局变量,比如@user = 1,为已登录的用户编写代码,然后将变量设置为0,并在各处添加if语句,为未登录的用户编写代码。
我不是Ruby程序员,所以不知道在哪里插入代码。
那么:如何在Middleman的config.rb中设置全局应用程序变量?

Middleman是一个静态网站生成器。“登录”是什么意思? - Nash Bridges
我写了:“模拟已登录的用户”。然后我在下一句中解释了它。我需要在config.rb中定义一个变量,然后使其对模板可见。 - Guard
1个回答

12

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

page "/my-page.html", :locals => { :is_logged_in => true }

如果你想使用一个包含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 }

对于直接变量,请使用 set

set :is_logged_in, true

在模板中:

<%= is_logged_in %>

感谢您的重点提示。这些直接进入config.rb,对吗?但实际上我需要的更简单一些 - 我希望在所有模板中都能看到这个变量。实际上,它主要是为了布局而需要的:登录/注销用户的页眉和页脚不同,我将在两者中都使用if。然后我(和其他编码人员)将在config.rb中切换变量并以2种模式查看网站。 - Guard
1
目前似乎无法与Middleman 4 beta 2一起使用。 - cseelus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接