سؤال

أنا أستخدم RSPEC للاختبار وسيناريوهات Hornsby لرسوم الرسوم البيانية الكائن المستخدمة في الاختبارات.

هل من الممارسات الجيدة تهيئة أعمدة ذاكرة التخزين المؤقت عداد إلى 0 قيمة بدلا من تركها غير مهيأة (NIL)؟ أو يجب أن أعرف القيمة الافتراضية في الترحيل التي تنشئ أعمدة ذاكرة التخزين المؤقت العداد؟

هل كانت مفيدة؟

المحلول

نعم، يجب عليك تعيين القيمة الافتراضية. وإلا يكون لديك لعمليات الرياضيات الخاصة بالحالة للتعامل مع nulls.

دعنا نقول أن لديك مجموعة من الكائنات بعد وأرجأت الحصول على عدد التعليقات.

إذا قمت بالتهيئة إلى الصفر @posts.sum(&:comment_count) سوف، ولكن إذا كنت لا تفعل ذلك لأنها سوف تفشل في لا شيء.

أوصي بتحديد العمود الخاص بك مثل هذا:

add_column :posts, :comments_count, :integer, :default => 0, :null => false

نصائح أخرى

القضبان ببساطة إرسال SQL التالية

UPDATE posts SET comment_count = comment_count + 1, WHERE id IN (10, 15)

لذلك يعرف DB أن غير محدد +1 == 1 أو القضبان يقوم ببعض تهيئة خاصة بها. في كلتا الحالتين، يبدو أن هذا سلوكا مستقرا بالنسبة لي، لذلك لا تحددها إلى الصفر وحفظ العمل. نظرا لأنك لن تكون قادرا على معرفة ما إذا كنت فعلت التهيئة على أي حال (يعمل نفس الشيء فقط بدون) كيف ستختبره. وإذا لم يكن مضمونا ليتم تهيئته بواسطتك ما الذي اكتسبته حقا من حيث التدقيق في المستقبل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top