2012-03-25 27 views
6

Bir Middleman projem var ve oturum açmış bir kullanıcı taklit etmem gerekiyor.Middleman 2'de bir değişkeni şablona geçirme

Yeterince basit - config.rb'de @user = 1 gibi bir global değişken ayarlamak iyi olurdu, giriş yapmış kullanıcı için her şeyi kodlayın, sonra değişkeni 0 olarak ayarlayın ve çıkış yapan kullanıcı için her şeyi kodlayın eğer her yerde

Ben Ruby kodlayıcı değilim, bu yüzden nerede bağlanacağımı anlamıyorum. Peki: nasıl bir middleman's config.rb global uygulama değişkenini ayarlayabilirim?

+0

[Middleman] (http://middlemanapp.com/) statik bir site jeneratör. Oturum açarak ne demek istiyorsun? –

+0

Yazdım: *** giriş yapmış bir kullanıcıya benzetmek ***. Sonra bir sonraki cümlede açıkladım. Config.rb dosyasında bir değişken tanımlamam gerekiyor, sonra da şablona görünür hale geliyor. – Guard

cevap

12

Sen page yardımcı kullanarak belirli yollarda değişkeni ayarlayabilirsiniz: Eğer is_logged_in dayalı içerik değişiklikleri işlemek için bir if include ifadesi tek bir şablon kullanmak isterse bir sayfayı kullanmak istiyorsunuz,

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

vekil: doğrudan değişkenler iç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 } 

, kullanmak set:

Şablonda

:

<%= is_logged_in %> 
+0

Öne çıkan özellikler için teşekkürler. Bunlar doğrudan config.rb'ye gider, değil mi? Ama aslında ihtiyacım olan şey biraz daha basit - bu varlığın tüm şablonlarda görülmesini istiyorum. Aslında, öncelikle düzen için gereklidir: üstbilgi ve altbilgi, giriş/çıkış yapan kullanıcılar için farklıdır ve her ikisinde de olacak. I (ve diğer kodlayıcılar) daha sonra config.rb'deki değişkeni değiştirecek ve siteyi 2 modda görüntüleyecektir. – Guard

+0

Yukarıdaki yazıyı, 'set' –

+0

Oh, great hakkında bilgilerle düzenledik. Tekrar teşekkürler – Guard

İlgili konular