初心者です。Q&Aサイトを作っています。
下記のコードでなぜ未ログインユーザーが詳細ページを見れないのかが分かりません..
※ログイン中のユーザーの場合は正常に閲覧できます。
理想は編集や削除の<li>タグはログインしているユーザーが質問者でその詳細ページを閲覧した際のみ表示され、回答コメントするにもサインインしているが条件にしたいです。
それが未ログインユーザーが詳細ページのリンクを踏むとTOPページ(詳細ページのリンクがTOP
ページにある)がリロードされて再表示されます。
原因をご教示いただけると幸いです。どうぞよろしくお願いいたします。
#詳細ページコード(show.html.erb)
<div> <div> <% if user_signed_in? && current_user.id == @question.user_id %> <div> <ul> <li> <%= link_to '編集', "/questions/#{@question.id}/edit", method: :get %> </li> <li> <%= link_to '削除', "/questions/#{@question.id}", method: :delete %> </li> </ul> </div> <% end %> <h4><質問内容></h4> <%= simple_format(@question.text) %> <span> <a href="/users/<%= @question.user.id %>"> <span>投稿者</span><%= @question.user.nickname %> </a> </span> </div> <div> <% if current_user %> <%= form_tag("/questions/#{@question.id}/answars", method: :post) do %> <textarea cols="30" name="text" placeholder="コメントする" rows="2"></textarea> <input type="submit" value="SENT"> <% end %> <% end %> <div> <% if @answars %> <h4><回答一覧></h4> <% @answars.each do |answar| %> <p> <strong><%= link_to answar.user.nickname, "/users/#{answar.user_id}" %>:</strong> <%= answar.text %> </p> <% end %> <% end %> </div> </div>
#コントローラー
def show @question = Question.find(params[:id]) @answars = @question.answars.includes(:user) end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。