#アプリケーションでマイページと他の人のページの条件分岐のやり方
マイページには編集のボタンがあって、今までお気に入りした投稿一覧があって、、、などと条件分岐したいときがあるはず...
ルーティングでresousesを使ってるので、一括で書いており、条件分岐するしかないや...
そんなあなたに意外と盲点な条件分岐の方法を伝授します!!
1)ユーザーはイベントを投稿できる
2)ユーザーのホームページの内容は全てusers/show.html.erbに書かれている
3)ログインしているユーザーが自分のuser_idのページを見るときだけ、マイページに飛ぶ
ポイントはこの3つです。
#条件分岐は...
:view/users/show.html.erb
<% if user_signed_in? && current_user.id.to_s == params[:id] %>
<!--マイページ(編集や削除ができる)-->
<!--例えば、誰のホームページなのかわかりやすくするためにそのユーザーの名前を表示するとき-->
<%= current_user.name %>
<% else %>
<!--他の人のページ(編集や削除はできない)-->
<!--投稿されたイベントをクリックしてそこから他の人のページに飛んだ場合-->
<%= event.user.name %>
<% end %>
で条件分岐することができます。
#※注意
current_user.id == params[:id]
ではエラーが起きてしまいます。
これは、current_user.id は Fixnum型なのに対し、params[:id]は String型で異なる型のなので、型を統一しなければならないからです。
あと、
user_signed_in?
も忘れないようにしましょう!
これがないユーザーとしてログインしてないときにcurrent_userってなに?!とエラーを吐かれてしまいます
慣れないと条件分岐って難しいですよね、最初は僕もベン図(小学校の時に習ったやつ)を書きながら条件分岐を考えてりしていました笑
ここが慣れるともっとたのしめると思います!
ではでは、、、