いらないリンクを消したい時
ログインページにいるのにログインリンク。新規登録ページにいるのにsignup(新規登録)のリンクはいらないですよね。
僕も今回、学習段階で実装する場面が来たので簡単にご紹介します。
・新規登録ページ
navbarのリンクはlogin表示のみ。signup(新規登録)リンクは隠す
・ログインページ
navbarのリンクはsignup(新規登録)表示のみ。loginリンクは隠す
該当コード
request:ユーザのヘッダー情報や環境変数を取得
# 新規登録画面におけるnavbarのコード
<% unless request.path.include?("login") %> #"login"とのurlを含まなければtrue
<li class="nav-item"><%= link_to 'Log in', login_path, class:'nav-link' %></li>
<% end %>
# ログイン画面におけるnavbarのコード
<% unless request.path.include?("users/new") %> #"users/new"とのurlを含まなければtrue
<li class="nav-item"><%= link_to 'Sign up', new_user_path, class:'nav-link'%></li>
<% end %>
# "signup"または"users/new"とのurlを含まなければtrue
<% unless request.path.include?("signup") || request.path.include?("users/new")%>
<li class="nav-item"><%= link_to 'Sign up', new_user_path, class:'nav-link'%></li>
<% end %>
補足
足りない部分や、間違っている箇所、もっときれいにコードを書ける部分があればご指摘いただきたいです。