الActiverecord يُمثل الطبقة المسؤولة عن تمثيل البيانات في رايلز. الActiverecord عرفه ووصفه مارتن فولر في كتابه “Patterns of Enterprise Application Architecture”. في الActiverecord، الكائنات (objects) توفر الحفظ الدائم للبيانات و كذلك التغيرات التي تطرأ على هذه البيانات.
الActiveRecord يُسهل إنشاء و إستعمال كائنات الأعمال التي تتطلب بيانات التخزين الثابتة من خلال قاعدة البيانات. إنه يُمثل نمط تصميم Activerecord والذي بدوره يصف نظام مخطط الكائن العلائقية ( object-relational mapping ) أو الORM، هذا الأخير عبارة عن تقنية تسمح بإيجاد علاقة بين الكائنات داخل تطبيق و جداول أنظمة تسيير قواعد البيانات. عمليا هذا يعني إستعمال الActiverecord لإنشاء و إستخراج البيانات بواسطة طرق وسِمات Ruby من دون الحاجة لاستعمال ال SQL بطريقة مباشرة. على سبيل المثال :
لنفرض أن تطبيقنا عبارة عن مدونة مكونة من مجموعة مقالات (يحتوي على نموذج نسميه Post) ونريد المقال
الأول، الطلب sql هو التالي :
1
| |
باستعمال ال Activerecord الطلب يكون بالطريقة التالية و البسيطة :
1
| |
تلاحظون أن إستعمال الActiverecord يسهل عليكم التعامل مع البيانات و جعل الsql شفاف إلى حد كبير، في المثال السابق يمكنكم بكل بساطة إضافة عنوان بواسطة إستعمال الطريقة p.title بالطريقة التالية مثلا :
1
| |
CRUD :
CRUD هو مُختصر ل “CREATE, READ, UPDATE, DELETE” : العمليات الأربعة الأساسية داخل قاعدة البيانات. الActiveRecord يوفر كل هذه العمليات الأساسية بحيث أن كل عملية تتم مُعالجتها من قبل Ruby API إصطلاحية للغاية (idiomatic) :
CREATE :
لإنشاء كائن ActiveRecord و من تم تجسيد الإنشاء. على سيبل المثال : لو قمنا بإنشاء نموذج للمدونة إسمه Post داخل التطبيق، فإن إنشاء مقال يكون عن طريق كتابة الأمر : Post.new أو إذا أردنا إدخال كل أو بعض الأوصاف للكائن يمكننا إستعمال الأمر create كالتالي :
1
| |
READ :
تشير إلى استخراج البيانات من قاعدة البيانات. Activerecord يُوفر مجموعة من الطرق كاملة على شكل أسئلة باللغة الإنجليزية مثل : Post.last أو Post.first.
UPDATE :
التحديث عبارة عن عملية من عمليات القراءة (read) لكائن معين من قاعدة البيانات و من بعدها تبديل وصف أو مجموعة من الصفات ثم حفظ التغيير، على سبيل المثال، إذا أردنا تحديث المقال الذي يحمل العنوان “المقال الضادي” فإننا نقوم بإستخراج المقال المناسب بواسطة الطريقة :
1
| |
المقال الآن محفوظ داخل الكائن p. بعدها نقوم بتغيير العنوان كما لو أردنا إدخال عنوان جديد :
1
| |
و في الأخير لم يتبقى لنا سوى حفظ الكائن : p.save
DELETE :
هذا الفعل يُستعمل من أجل حذف الكائن و الذي يقوم بحذف سطر من داخل قاعدة البيانات بواسطة الأمر : DELETE.
في الجزء الثاني من المقال إن شاء الله سأقوم بشرح العلاقات التي يمكن إنشاءها بين الكائنات و كيف يُمكن إدارتها بالActiverecord