让我用简单的例子来描述。
我有一个数字列表:
ex:list = [ 3, 1, 2 ]
我在DB中有一个名为Products
的表,其中有3行,product_id
= 1
,2
和3
。
现在我需要查询Products
按list
值(3,1,2)
排序,结果将是:
product_3 product_1 product_2
查询将如下: product.sort(list)或product.order(list)或其他一些替代方案
答案 0 :(得分:1)
这应该适合你:
list = [3, 1, 2]
Product.where(product_id: list).sort_by { |p| list.find_index(p.product_id) })