#はじめに
↓ログアウト状態のユーザーにはこの画面が見れるようにします
こうする理由としてはログアウトユーザーでも投稿ができてしまう事やログアウト状態のユーザーには新規登録かログインをして欲しいからです。
(ログインしてない状態でも、「投稿」ボタンの遷移先であるURLを直接入力すると、新規投稿ページにアクセスできてしまうのでそこはコントローラーアクションで設定します)
user_signed_in?メソッド
Gemのdeviseを導入しているため、使用できるメソッドです。
ログインしているかどうかの判定を行います。
ユーザーがログインしていればtrueを、ログアウト状態であればfalseを返します。
.rb
# ログイン状態のユーザー
user_signed_in?
#=> true
# ログアウト状態のユーザー
user_signed_in?
#=> false
このメソッドを**条件分岐(if)**と組み合わせると最初の画像と同じようになります。
.html.erb
<% if user_signed_in? %>
# ログイン状態時の処理
<% else %>
# ログアウト状態時の処理
<% end %>
<% if user_signed_in? %>
<li><%= link_to current_user.nickname, edit_user_registration_path, class: "" %></li>
<li><%= link_to 'ログアウト', destroy_user_session_path, method: :delete, class: "" %></li>
<%= link_to(new_review_path, class: '') do %>
<span class='post-btn-text'>投稿</span>
<i class="far fa-paper-plane"></i>
<% end %>
<% else %>
<li><%= link_to 'ログイン', new_user_session_path, class: "" %></li>
<li><%= link_to '新規登録', new_user_registration_path, class: "" %></li>
<% end %>