5
2

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 3 years have passed since last update.

常に、自分が投稿したものをログインしている自分だけに表示したい

Last updated at Posted at 2020-09-17

【概要】

1.結論

2.whereメソッドとは何か

3.どのように使うか

4.ここから学んだこと

1.結論

whereメソッドをつかう!

2.whereメソッドとは何か

欲しい条件を探すメソッドです!

モデル.where(条件名: 条件の内容)

で使用できます!

ブログや、ニュース記事での検索ワード欄にて特定の文字を探すプログラムを記載する時に頻繁に使います!


3.どのように使うか ---------------------------------------- 自分は下記のように使用しました!
time_controller.rb
@times = Time.where(user_id: current_user.id).includes(:user).order("created_at DESC")

現在ログインしているユーザーが投稿した物を、投稿した人=ログインしているユーザー(current_user.id)のみに表示させたかったのでwhereメソッドを使用しました!
includes(:user)はN+1問題解決(プログラムの無駄な処理を軽減)し、order("created_at DESC")は新規投稿順にしています!

参考にしたURL:
[Rails]ログインユーザーidを使って、異なるテーブルに存在する値を出力したい[ActiveRecord]


5.ここから学んだこと(エラーの時に使用)

if条件式で場合分けしようとしましたが、いくら条件式作っても表示自体を制限しないと、条件式下で全部表示されてしまいます。whereメソッドは検索ワード欄を作りたいと意識するあまりに、本質は”表示を制限する”ことが抜けていました。具体的な事象➡︎抽象的な事象に変換するともっとメソッドに対しての活用視野が広がると確信しました。

5
2
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
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?