ログインの有無で表示するメッセージを変える
RailsでWebアプリを開発しています。 ログインの有無でコメント入力フォームの表示させる内容を切り替えたいときに、以下の記述を使いました。HTMLテンプレートにはSlimを使っています。
- if logged_in? = render 'comments/form', post: @post, comment: @comment - else .m-3 | コメントするには = link_to 'ログイン', login_path | してください
logged_in?
は認証に利用しているsorceryのメソッドです。
ログインしている場合は、コメント入力フォームのパーシャルを呼びます。
ログインしていない場合は、ログインの入力を促すメッセージとログインページへのリンクをつけています。
メンターの方に聴いたところ、POSTメソッドでは表示を切り替えることが多いそうです。 GETの場合はControllerで制御することもするそうです。
ログイン有無などユーザーの状態を意識して、システム側から応答する内容を考えて実装していくとすこしずつ良いアプリになっていくような気がします。