2012-03-25 91 views
6

我有一個Middleman項目,我需要模擬一個登錄用戶。將一個變量傳遞給Middleman中的模板2

足夠簡單 - 在config.rb中設置一些像@user = 1這樣的全局變量就可以了,爲登錄用戶編寫所有內容,然後將該變量設置爲0併爲註銷用戶編寫所有代碼如果無處不在

我不是Ruby編碼器,所以我不明白在哪裏掛鉤。 因此:如何在中間商的config.rb中設置全局應用變量?

+0

[中間人(http://middlemanapp.com/)是一個靜態現場發電機。登錄是什麼意思? – 2012-03-25 16:04:51

+0

我寫道:***模擬登錄用戶***。然後我在下一句中解釋它。我需要在config.rb中定義一個變量,然後使模板可見。 – Guard 2012-03-26 09:16:45

回答

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 %> 
+0

感謝您的亮點。這些直接進入config.rb,對吧?但實際上我需要的是更簡單一點 - 我希望在所有模板中都能看到這個變種。其實它主要是需要的佈局:頁眉和頁腳是不同的登錄/出用戶,我會有,如果在兩個。然後,我(和其他編碼器)將在config.rb中切換變量並以2種模式查看站點。 – Guard 2012-03-26 10:17:41

+0

編輯了上面的帖子,關於'set'的信息 – 2012-03-26 11:09:15

+0

哦,太好了。再次感謝 – Guard 2012-03-26 11:35:36