8
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

マイページと他の人のページの条件分岐法

Posted at

#アプリケーションでマイページと他の人のページの条件分岐のやり方
マイページには編集のボタンがあって、今までお気に入りした投稿一覧があって、、、などと条件分岐したいときがあるはず...

ルーティングで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ってなに?!とエラーを吐かれてしまいます

慣れないと条件分岐って難しいですよね、最初は僕もベン図(小学校の時に習ったやつ)を書きながら条件分岐を考えてりしていました笑
ここが慣れるともっとたのしめると思います!

ではでは、、、

8
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?