आपका लिंक्ड टू उत्तर वही प्रदान करता है जो आपको चाहिए, आपको बस इसे रूबी में लचीले तरीके से कोड करने की आवश्यकता है।
कुछ इस तरह:
class User
def self.find_as_sorted(ids)
values = []
ids.each_with_index do |id, index|
values << "(#{id}, #{index + 1})"
end
relation = self.joins("JOIN (VALUES #{values.join(",")}) as x (id, ordering) ON #{table_name}.id = x.id")
relation = relation.order('x.ordering')
relation
end
end
वास्तव में आप इसे आसानी से एक मॉड्यूल में रख सकते हैं और इसे किसी भी ActiveRecord कक्षाओं में मिला सकते हैं, क्योंकि यह table_name
का उपयोग करता है और self
इसे किसी विशिष्ट वर्ग के नाम से लागू नहीं किया गया है।