同じクエリ内でキャスト SQL とキー/値属性を組み合わせる方法
概要
これら 2 つの条件をクエリの同じ params マップに結合するにはどうすればよいでしょうか?
Post.where('created_at >= ?', 2.weeks.ago)
Post.where(:site_id => site_id)
今までは次のように構築してきました
Post
.where(:site_id => site_id)
.where('created_at >= ?', 2.weeks.ago)
でもこの状況を考えると、ちょっと行き詰まってしまった
# With the addition being the sql casting query
params = {:site_id => site_id}
Post.where(params)
これをどうやって行うのか、実際には何と呼んでいいのかわかりません。何か助けはありますか?
レール 7.0 ルビー 3.2.2
解決策
Post
.where(:site_id => site_id)
.where('created_at >= ?', 2.weeks.ago)
翻訳すると
params = { site_id: site_id, created_at: (2.weeks.ago..) }
Post.where(params)
日付条件に無限の範囲を使用することで、Ruby on Rails は同等の SQL 条件に変換できます。