2012-03-25 6 views
6

私はMiddlemanプロジェクトを持っており、ログインしているユーザーをエミュレートする必要があります。変数をMiddleman 2のテンプレートに渡します。

シンプルで、config.rbで@user = 1のようなグローバル変数を設定し、ログインしたユーザーのすべてをコード化し、変数を0に設定し、ログアウトしたユーザーのためにすべてをコーディングしても問題ありませんどこでもあれば

私はRubyのコーダーではありませんので、どこに接続するのか分かりません。 どうすれば仲介者のconfig.rbでグローバルなアプリケーション変数を設定できますか?

+0

[仲介](http://middlemanapp.com/)は、静的サイトジェネレータです。あなたはログインして何を意味しますか? –

+0

私は次のように書いています:***ログインしているユーザーをエミュレートします***。その後、私は次の文章でそれを説明しました。 config.rbに変数を定義してから、テンプレートにmakeを表示する必要があります。 – Guard

答えて

12

あなたはpageヘルパーを使用して特定のパスに変数を設定することができます。

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

あなたはis_logged_inに基づいてコンテンツの変更を処理するためif include文を単一のテンプレートを使用したい場合は、ページを使用しますプロキシ:直接変数の場合

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

テンプレート内

<%= is_logged_in %> 
+0

ハイライトをありがとう。これらはconfig.rbに直接移動します。しかし、実際に私が必要とするのはちょっと単純です - この変数をすべてのテンプレートで見たいと思っています。実際には、レイアウトのためには主に必要です。ヘッダーとフッターはログインしているユーザーと外に出ているユーザーとで異なり、ifとifの両方にあります。私(そして他のコーダー)は、config.rbの変数を切り替え、2つのモードでサイトを表示します。 – Guard

+0

上記の投稿を 'set'に関する情報で編集しました –

+0

ああ、素晴らしい。ありがとうございます。 – Guard

関連する問題