Active Record のプレースホルダー付き条件を知る
Active Record のプレースホルダー付き条件を知る:
以下のように、 ActiveRecord の where メソッドにおいて、SQL 文にシンボルで値を複数渡すことができます。これは、 where だけじゃなく、 find_by_sql メソッドでも使えることは確認できています。他のメソッドはどうなんだろう…。
前提
- 生の SQL 文に引数として値を複数渡したいなと思った時に知ったメソッドです。
環境
- Ruby On Rails 5.1.6
- Ruby 2.4.4p296
TL;DR
以下のように、 ActiveRecord の where メソッドにおいて、SQL 文にシンボルで値を複数渡すことができます。これは、 where だけじゃなく、 find_by_sql メソッドでも使えることは確認できています。他のメソッドはどうなんだろう…。Users.where("created_at >= :start and created_at <= :end", {start: '2018-01-01', end: '2018-03-31'}) # "SELECT `users`.* FROM `users` WHERE `users`.`type` IN ('Users') AND (created_at >= '2018-01-01' and created_at <= '2018-03-31')" Users.find_by_sql(['select * from users where created_at between :start and :end', { start: '2018-01-01', end: '2018-03-31' }]) # select * from users where created_at between '2018-01-01' and '2018-03-31'
コメント
コメントを投稿