📌
【Rails】whereで複数条件を1行で書く
whereメソッドは、テーブルの条件に一致するレコードを取得するメソッドです。主に検索で使用されています。
結論
先に結論を書きます。以下のような記法です。
モデル名.where("(カラム名 = ?) OR (カラム名 = ?)", 変数,変数)
実際
Post.where("(id = ?) OR (user_id = ?)", 5, 6)
whereメソッドの書き方
whereメソッドを指定するには、シンボルの説明と文字列の説明の2つの方法があります。
それぞれの指定方法を順番に見ていきましょう。
シンボル指定
記号を指定する場合の説明は次のとおりです。
モデル名.where(カラム名: 条件)
実際
Post.where(id: 5)
文字列指定
文字列を指定する場合は以下のとおりです。
モデル名.where("カラム名 = 条件")
実際
Post.where("id = 5")
この種のコードを記述する方法は2つありますが、実際には、条件を使用して検索する場合、where(カラム名: "条件")
を指定することによって定義されます。
これは、SQLインジェクションと呼ばれるセキュリティホールを防ぐためです。
Discussion