qua*_*ato 64 ruby-on-rails rails-activerecord
我想要做
Model.where('id = ?', [array of values])
Run Code Online (Sandbox Code Playgroud)
如何在不将OR语句链接在一起的情况下完成此查找?
Wil*_*son 134
从这里开始,似乎是使用SQL in
语句完成的:
Model.where('id IN (?)', [array of values])
Run Code Online (Sandbox Code Playgroud)
或者更简单地说,正如kdeisz指出的那样(使用Arel来创建SQL查询):
Model.where(id: [array of values])
Run Code Online (Sandbox Code Playgroud)
mes*_*jah 18
如果要使用IN表达式查找记录,可以将数组传递给条件哈希:
Client.where(orders_count: [1,3,5])
Run Code Online (Sandbox Code Playgroud)
为了便于阅读,可以进一步简化,以便:
Model.find_by(id: [array of values])
Run Code Online (Sandbox Code Playgroud)
这相当于使用where
,但更明确:
Model.where(id: [array of values])
Run Code Online (Sandbox Code Playgroud)