تحقق فعّال: دليل شامل لـ Active Record Validations في Ruby on Rails
في عالم تطوير البرمجيات وبالأخص عند العمل مع قواعد البيانات، يتعين علينا أن نولي اهتماماً خاصاً لتأكيد أمان وصحة البيانات التي نتعامل معها. إحدى الوسائل المهمة لضمان تلك السلامة والصحة في تطبيقات Ruby on Rails هي استخدام “Active Record Validations”.
تقوم تلك التحقيقات بفحص البيانات قبل حفظها في قاعدة البيانات، مما يسمح لنا بضمان أن البيانات المخزنة تفي بالمعايير المحددة مسبقًا. ومن بين هذه التحقيقات، يأتي دور التحقق المخصص (Custom Validations) الذي يتيح للمطورين تحديد قواعد خاصة بهم للتحقق من صحة البيانات.
-
تخصيص عرض العمود في بانداس.01/04/2024
-
دمج بيانات المستخدمين في Python03/03/2024
عندما نتحدث عن التحقق المخصص في Active Record، نعني بأن المطور يقوم بتعريف دالة أو طريقة خاصة به للتحقق من صحة البيانات بشكل يتناسب مع متطلبات التطبيق الخاص به. يمكن أن يكون ذلك مفيدًا جداً في حالات حيث تكون قواعد التحقق الافتراضية غير كافية لتلبية احتياجات التطبيق.
على سبيل المثال، فلنفترض أن لدينا نموذجًا يُمثّل إعلانًا على موقع الويب، ونريد التحقق من أن تاريخ انتهاء الإعلان لا يمكن أن يكون في الماضي. في هذه الحالة، يمكننا استخدام التحقق المخصص لتنفيذ تلك القاعدة. يمكن تحقيق ذلك عبر تعريف وظيفة داخل النموذج:
rubyclass Ad < ApplicationRecord
validate :expiration_date_cannot_be_in_the_past
def expiration_date_cannot_be_in_the_past
if expiration_date.present? && expiration_date < Date.today
errors.add(:expiration_date, "can't be in the past")
end
end
end
في هذا المثال، نستخدم دالة validate
لربط وظيفة التحقق المخصصة expiration_date_cannot_be_in_the_past
بنموذج الإعلان. تقوم هذه الوظيفة بفحص ما إذا كان تاريخ انتهاء الإعلان في المستقبل أم لا، وفي حالة كان في الماضي، سنقوم بإضافة خطأ إلى مصفوفة الأخطاء باستخدام errors.add
.
يظهر هنا كيف يمكن للتحققات المخصصة أن تضيف قيمة فعّالة لعملية التحقق من البيانات في Rails. إنها طريقة قوية لتخصيص التحققات وتحديدها وفقًا لاحتياجات التطبيق الفريدة. وبهذا الشكل، يمكن لمطوري Ruby on Rails الاستمتاع بمزيد من المرونة والتحكم في كيفية تأكيد صحة البيانات في تطبيقاتهم.
المزيد من المعلومات
بالتأكيد، دعونا نستكشف المزيد حول Active Record Validations في Ruby on Rails ونلقي نظرة على بعض النقاط المهمة الأخرى.
-
التحقق من الوحدات الفريدة (Uniqueness Validation):
يمكننا استخدام التحقق من الوحدة (uniqueness
) للتحقق من أن قيمة معينة في حقل معين لا تتكرر في السجلات الأخرى في الجدول. على سبيل المثال:rubyclass User < ApplicationRecord validates :username, uniqueness: true end
في هذا المثال، يتأكد التحقق من أن قيمة
username
في جدول المستخدمين لا تتكرر. -
التحقق من الحقول الإلزامية (Presence Validation):
يمكننا استخدام التحقق من الحضور (presence
) للتحقق من أن حقل معين لا يمكن أن يكون فارغًا. على سبيل المثال:rubyclass Article < ApplicationRecord validates :title, :content, presence: true end
في هذا المثال، يتأكد التحقق من أن كل من حقول
title
وcontent
لا يمكن أن يكونا فارغين. -
التحقق من الطول (Length Validation):
يمكننا استخدام التحقق من الطول (length
) لفحص طول السلسلة في حقل معين. على سبيل المثال:rubyclass Comment < ApplicationRecord validates :body, length: { minimum: 5, maximum: 1000 } end
في هذا المثال، يتحقق التحقق من أن طول النص في حقل
body
يتراوح بين 5 و 1000 حرف. -
التحقق من الصيغة (Format Validation):
يمكننا استخدام التحقق من الصيغة (format
) لفحص ما إذا كانت القيمة تتناسب مع صيغة محددة. على سبيل المثال:rubyclass EmailSubscriber < ApplicationRecord validates :email, format: { with: URI::MailTo::EMAIL_REGEXP } end
في هذا المثال، يتأكد التحقق من أن قيمة البريد الإلكتروني تتطابق مع صيغة بريد إلكتروني صحيحة.
-
تخصيص الرسائل الخطأ:
يمكن للمطورين تخصيص رسائل الخطأ لكل تحقق عند الحاجة. على سبيل المثال:rubyclass Person < ApplicationRecord validates :age, numericality: { greater_than: 0, message: "must be a positive number" } end
في هذا المثال، يتم تحديد رسالة الخطأ المخصصة للحالة التي يكون فيها العمر أقل من أو يساوي صفر.
-
التحقق من الترتيب (Numericality Validation):
يمكن استخدام التحقق من القيم الرقمية (numericality
) للتحقق من أن القيمة في حقل معين هي قيمة رقمية. على سبيل المثال:rubyclass Product < ApplicationRecord validates :price, numericality: { greater_than: 0 } end
في هذا المثال، يتأكد التحقق من أن قيمة السعر هي رقم إيجابي.
بهذا الشكل، يمكننا رؤية أن Ruby on Rails توفر مجموعة واسعة من أدوات التحقق التي تمكن المطورين من ضبط وتخصيص عمليات التحقق لتلبية متطلبات تطبيقاتهم بشكل فعّال وموثوق. استخدام هذه الأدوات يسهم في بناء تطبيقات قوية وأكثر أماناً، حيث يمكن التحقق من صحة البيانات قبل أن تدخل إلى قاعدة البيانات وبالتالي يتم تحسين جودة وأداء التطبيقات.