ユーザーの状態と現在のパスに依存するナビゲーション バーを持つための適切なパターンを探しています。
私たちのアプリケーションにはナビゲーション バーがあり、ログインしているユーザー向けのユーザー固有のオプション (私のプロフィール、仕事など) と、ゲスト ユーザー向けのゲスト固有のオプション (仕組み、メンバーになるなど) が表示されます。 )。
現在、デモ ユーザーもいます。このユーザーには、パスのサブセットにいるときはユーザー固有のオプションが表示され、別のパスにいるときはゲスト固有のオプションが表示されます。
私の現在の解決策は、配列に格納されたホワイトリストと、現在のパスが配列内にあるかどうかを確認する関数です。
ALLOWED_FOR_DEMO = ['profile', 'demo_jobs', 'jobs']
def allowed_for_demo?
ALLOWED_FOR_DEMO.each { |path|
return true if request.path.include? path
}
return false
end
これは、ヘッダー ビューでチェックされます。
<% if allowed_for_demo? %>
<div class="navbar">
<div class="navbar-inner">
<div class="container">
</div>
</div>
</div>
<% end %>
あなたが私に尋ねると、これのパターンはかなり悪いので、誰かがこれのためのより良いパターンを持っているなら、それは非常に高く評価されます.