إضافة عمود SNO تلقائي في Rails Scaffolding؟
-
19-09-2019 - |
سؤال
هل هناك طريقة يمكنني من خلالها إنشاء عمود الرقم التسلسلي (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 قد يكون مناسبًا.
أ حلقة السكك الحديدية يوفر أمثلة التعليمات البرمجية والفيديو التعليمي.
لا تنتمي إلى StackOverflow