2016-04-30 8 views
4

私のアプリケーションでは、ユーザーはメインサイトに入る前にログインすることができます。Ruby on Railsでは、ログインページでnavbarレンダリングを停止する方法は?

私はサイト全体でnavbarを部分的にレンダリングしていますが、ログインページにレンダリングされたnavbarは望ましくありません。これを防ぐために、Navbarコードをコピーしてすべてのビューに貼り付ける必要はありません。

ログイン画面でナビゲーションバーの表示を止める方法があった場合は、その部分を削除する必要はありません。

アプリケーションの1ページから部分ビューを制限するにはどうすればよいですか?

私はDeviseを使用しています。

私はコードがこの投稿に必要とは思われませんが、役立つ場合は提供してください。ありがとう。

答えて

4

あなたがログインページにいるDeviseを使用している場合、ログインしているユーザーはいません。次に、あなたが望むものを達成するためにDeviseヘルパーの1人を使うことができます。ような何か:

if (not user_signed_in?) then 
    render 'your_partial_with_the_navbar' 
end 

ここでの唯一のポイントは、部分的には、ログインユーザがいない任意のページにレンダリングされないだろうという事実です。

さらに、あなた自身でより良いヘルパーを作成し、user_signed_inを組み合わせることもできます。あなたの他の条件とDeviseからの

+2

ありがとうございました。私は、アプリケーションレイアウトファイル<%if(user_signed_in?)%%>

<% end %>で次のことを行いました。とにかくすべてのユーザーがログインする必要があります。再度、感謝します。 – Co2

+0

それは助けてよかった。答えを受け入れることに感謝します。 –

関連する問題