CASE를 이용해서 정렬(일반적인 정렬 X)
상황
해결
CASE 를 사용하자!!
def self.priority_order
self.order(
# A Relational Algebra
Arel.sql(<<-SQL.squish
CASE
WHEN position = 'master' THEN '1'
WHEN position = 'officer' THEN '2'
WHEN position = 'member' THEN '3'
END
SQL
)
)
end
# 이후에는 아래처럼 사용하면 된다.
def self.for_members_ranking(guild_id, page)
self.where(guild_id: guild_id).priority_order.page(page).map { |membership|
membership.user.profile
}
endLast updated