投稿者のみに見れるような設定 Railsエラー問題の解決するための考え方 その12 ~番外編~

・編集・削除ボタンが投稿したユーザー以外にも見えてしまう(投稿ユーザーのみが編集・投稿ボタンを見えるようにしてください)

tweetの表示に関わることの為、app/views/tweets/_tweet.html.erbを見に行く

→8行目に<% if true %>と記載があるが、そもそも条件分岐もされていないのでおかしいし、ユーザーがサインインしているしていないで出てくる画面も変わるはずで、もし、ユーザーがサインインしているなら?していないなら?の部分が抜けている。

→<% if true %><% if user_signed_in? && current_user.id == tweet.user_id %>と記載して正解。

 

※&& current_user.id == tweet.user_id

&&==の使い方は?、&&とはAでありBである状況を表す。

==Rubyの場合1つだと代入になってしまう為、イコールという意味にするには==である。=はあくまで左に代入する時のみ使う。

 

・「投稿する」ボタンをおして新規登録後(ユーザー登録の際は必ずアバター画像を入れてください)、実際にレビューの投稿を行ってください。投稿は正常にできるが、投稿後に表示される画面の下部に不要な表示がされている

レビューの投稿はshow要素であり、それの表示に関わることのため、app/views/products/show.html.erbを見に行く。

→25行目に、<%= @product.reviews.each do |review| %>と記載ある。

→<% %>の方は結果を出力しない計算や繰り返し処理などのRubyコードを記述するのに使用し、<%= %>の方は文字列を出力するような処理で使用します。

その為、<% @product.reviews.each do |review| %>と書き直して正解。