هل تريد جمع كل السمات في النموذج؟

1

شعرت بالفضول لمعرفة ما إذا كانت هناك طريقة سهلة لجمع كل السمات في النموذج دون أن تبدو متكررة ، وليست جافة.

لدي تطبيق للتبرع ، وهكذا جمعت كل شيء:

def self.total_donations
    array = Category.pluck(
    'SUM(toilet_paper)',
    'SUM(dental_hygiene)',
    'SUM(first_aid)',
    'SUM(general_hygiene)',
    'SUM(underwear_socks)',
    'SUM(blankets)',
    'SUM(school_supplies)',
    'SUM(diapers)').flatten.compact
    array.inject(0){|sum, x| sum + x}
end 

إنها قبيحة فقط ، لكنني لا أعرف كيف أتجول في إضافة كل هذه الأشياء دون القيام بشيء من هذا القبيل.

شكر!

1 إجابة

1
افضل جواب

تحقق من هذا:

def self.total_donations
  sum("toilet_paper + dental_hygiene + first_aid + general_hygiene + underwear_socks + blankets + school_supplies + diapers")
end

SQL التي تم إنشاؤها:

SELECT SUM(toilet_paper + dental_hygiene + first_aid + general_hygiene + underwear_socks + blankets + school_supplies + diapers)
FROM "categories"
  • قصير (لا يوجد أقصر ممكن)
  • بكفاءة (تتم جميع المعالجة على طبقة قاعدة البيانات)

لاحظ أنه في حالة مثيل الصف ، لا يتعين عليك استخدام Category لأنه كذلك self (على افتراض أن الطريقة في Category نموذج).

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام