Ordering ActiveRecord::Relation with SQL argument
Using `FIELD()` (with MySQL) or `idx()` (with PostgreSQL)
1 min readJan 24, 2019
with MySQL
user_ids = [3, 2, 1]users = User.where(id: user_ids).order("FIELD(id, #{user_ids.join(',')})")
with PostgreSQL
user_ids = [3, 2, 1]users = User.where(id: user_ids).order("idx(ARRAY#{user_ids}, id)")
Try it & happy programming~
Reference: https://gist.github.com/cpjolicoeur/3590737