لترتيب سجلات نموذج المنتج في Rails بناءً على حقلين، عليك استخدام الطريقة order
في الاستعلام. يمكنك استخدام COALESCE
في SQL لتحقيق هذا الغرض، حيث يُرجع COALESCE
أول قيمة غير NULL
من بين القيم التي يتم تمريرها له. في حالتك، سنستخدم COALESCE
للتحقق من قيمة sale_price
واختيار القيمة المناسبة للفرز.
في نموذج المنتج Product، يمكنك استخدام الاستعلام التالي:
rubyProduct.order("COALESCE(sale_price, price) ASC")
سيُرتب هذا الاستعلام السجلات وفقًا للقيم في الحقل sale_price
إذا كانت متاحة، وإلا سيتم استخدام القيمة في الحقل price
للفرز.
يرجى ملاحظة أنه قد تحتاج إلى ضبط الاستعلام وفقًا لهيكل قاعدة البيانات الخاص بك، حيث قد تختلف الاستعلامات بين قواعد البيانات المختلفة.
المزيد من المعلومات
لديك نموذج Product
في Rails وتريد ترتيب السجلات بناءً على حقلي price
و sale_price
. إذا كانت قيمة sale_price
متاحة، يجب أن تأتي أولاً في الترتيب، وإذا كانت غير متاحة، يجب أن تأتي القيمة في الحقل price
.
لتحقيق هذا في Rails، يمكنك استخدام الاستعلام التالي في نموذج Product
:
rubyProduct.order("CASE WHEN sale_price IS NULL THEN price ELSE sale_price END ASC")
هذا الاستعلام يستخدم CASE
للتحقق من قيمة sale_price
، وإذا كانت NULL
، يتم استخدام قيمة price
، وإلا يتم استخدام قيمة sale_price
للفرز.