確認環境

  • ruby: ruby 2.5.3
  • rails: rails 5.2.2

方法

  • Mysqlの FIELD 関数を使用する※FIELD 関数の結果で ORDER BY する

例. レコードを order 昇順, user_id 昇順で並び替える場合
※同じ順位の場合は自分を優先

order(:order, ["field(user_id , #{current_user.id}) desc"], :user_id)

※ ポイントとしては第2ソートキーの前に ORDER BY FIELD を使用すること
また、ORDER BY FIELD で指定した分に対して desc を指定すること
desc を指定しないと自分以外が優先的に並び替えられてしまう)