سؤال

هل هناك طريقة يمكنني من خلالها إنشاء عمود الرقم التسلسلي (SNO) من خلال السقالات في Rails والذي يزيد عند إضافة سجل، ويقلل عند حذف سجل ولا يمكن تعديله يدويًا؟

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

المحلول

إذا كنت تريد إنشاء عمود ملخص على نموذج، فستحتاج إلى وضع هذا المنطق في نماذجك.لا توجد طريقة مدمجة لهذا (مثل حقل الزيادة التلقائية القياسي)، ولكن يمكن إضافتها بسهولة:

class Parent << ActiveRecord::Base 
    # Contains a field: summary_field
end 


class Child << ActiveRecord::Base

   after_save => :increment_summary
   before_destroy => :decrement_summary

   def increment_summary
        Parent.find(self.id).summary_field.increment
   end 

   def decrement_summary
        Parent.find(self.id).summary_field.decrement
   end 

end 

نصائح أخرى

ليس من الواضح ما إذا كانت هناك أي علاقة معنية، ولكن يبدو أن counter_cache قد يكون مناسبًا.

أ حلقة السكك الحديدية يوفر أمثلة التعليمات البرمجية والفيديو التعليمي.

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