Ordering ActiveRecord::Relation with SQL argument

Using `FIELD()` (with MySQL) or `idx()` (with PostgreSQL)

Mitsun Chieh

--

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

--

--