hof*_*ffm 3 activerecord ruby-on-rails
假设我有一个非空ids的Thing对象id 数组,我想找到相应的对象things = Thing.find_all_by_id(ids).我的印象是,things不一定会有类似的顺序ids.
我的印象是否正确?
如果是这样,我可以使用什么而不是find_all_by_id保留订单并且不会多次不必要地访问数据库?
看看这个:
Thing.where(:id => ids).sort! {|a, b| ids.index(a.id) <=> ids.index(b.id)}
Run Code Online (Sandbox Code Playgroud)
where(:id => ids)将使用一个生成一个查询IN().然后排序!方法将遍历查询结果并比较ids数组中id的位置.
| 归档时间: |
|
| 查看次数: |
1425 次 |
| 最近记录: |