はじめに
Qiita初投稿になります。
学んでいる内容で以下の記述の意味が全然わかりませんでした。
なので、今回は「whereメソッド」の使い方をメモします。
@todays_date = Date.today
plans = Plan.where(date: @todays_date..@todays_date + 6)
ちなみに「..」は”~”を指します。
つまり、 @todays_date..@todays_date + 6は「今日の日付(@todays_date) ~ 6日後までということらしいです。
基本の使い方
モデル名.wher(カラム名: 条件)
User.where(name: "ショウ")
これで「ショウ」という名前のユーザーのレコードを全て取得します。
引数が一つの場合は他にも書き方があるそうですが、以下の2つの理由で上記のハッシュで記述するのが良いそうです。
- 「SQLインジェクション」という悪意のある攻撃を防ぐため
- 記述が楽なため
whereの他の使い方
配列で指定する方法
User.where(tweet_id: [1,2])
tweet_id が1か2のユーザーの全てのレコードを取得できます。
〜以外で指定する方法
User.where.not(name: "ショウ")
nameが「ショウ」以外のユーザーのレコードを全て取得できます。
あとがき
他にもwhereには比較演算子を使用した使い方があるみたいですね。
少しずつ覚えていこうと思います!
参考サイトです!
https://www.sejuku.net/blog/13363