مدخل إلى Activerecord : CRUD

الActiverecord يُمثل الطبقة المسؤولة عن تمثيل البيانات في رايلز. الActiverecord عرفه ووصفه مارتن فولر في كتابه “Patterns of Enterprise Application Architecture”. في الActiverecord، الكائنات (objects) توفر الحفظ الدائم للبيانات و كذلك التغيرات التي تطرأ على هذه البيانات.
الActiveRecord يُسهل إنشاء و إستعمال كائنات الأعمال التي تتطلب بيانات التخزين الثابتة من خلال قاعدة البيانات. إنه يُمثل نمط تصميم Activerecord والذي بدوره يصف نظام مخطط الكائن العلائقية ( object-relational mapping ) أو الORM، هذا الأخير عبارة عن تقنية تسمح بإيجاد علاقة بين الكائنات داخل تطبيق و جداول أنظمة تسيير قواعد البيانات. عمليا هذا يعني إستعمال الActiverecord لإنشاء و إستخراج البيانات بواسطة طرق وسِمات Ruby من دون الحاجة لاستعمال ال SQL بطريقة مباشرة. على سبيل المثال : لنفرض أن تطبيقنا عبارة عن مدونة مكونة من مجموعة مقالات (يحتوي على نموذج نسميه Post) ونريد المقال

الأول، الطلب sql هو التالي :

1
SELECT *  FROM posts ORDER BY date DESC LIMIT 1

باستعمال ال Activerecord الطلب يكون بالطريقة التالية و البسيطة :

1
p = Post.last

تلاحظون أن إستعمال الActiverecord يسهل عليكم التعامل مع البيانات و جعل الsql شفاف إلى حد كبير، في المثال السابق يمكنكم بكل بساطة إضافة عنوان بواسطة إستعمال الطريقة p.title بالطريقة التالية مثلا :

1
p.title = "dtmdeblog post"

CRUD :

CRUD هو مُختصر ل “CREATE, READ, UPDATE, DELETE” : العمليات الأربعة الأساسية داخل قاعدة البيانات. الActiveRecord يوفر كل هذه العمليات الأساسية بحيث أن كل عملية تتم مُعالجتها من قبل Ruby API إصطلاحية للغاية (idiomatic) :

CREATE :

لإنشاء كائن ActiveRecord و من تم تجسيد الإنشاء. على سيبل المثال : لو قمنا بإنشاء نموذج للمدونة إسمه Post داخل التطبيق، فإن إنشاء مقال يكون عن طريق كتابة الأمر : Post.new أو إذا أردنا إدخال كل أو بعض الأوصاف للكائن يمكننا إستعمال الأمر create كالتالي :

1
Post.create \(title:”dtmdeblog post 1”, date:Time.now\)

READ :

تشير إلى استخراج البيانات من قاعدة البيانات. Activerecord يُوفر مجموعة من الطرق كاملة على شكل أسئلة باللغة الإنجليزية مثل : Post.last أو Post.first.

UPDATE :

التحديث عبارة عن عملية من عمليات القراءة (read) لكائن معين من قاعدة البيانات و من بعدها تبديل وصف أو مجموعة من الصفات ثم حفظ التغيير، على سبيل المثال، إذا أردنا تحديث المقال الذي يحمل العنوان “المقال الضادي” فإننا نقوم بإستخراج المقال المناسب بواسطة الطريقة :

1
p = Post.find_by_title(“dtmdeblog post 1”)

المقال الآن محفوظ داخل الكائن p. بعدها نقوم بتغيير العنوان كما لو أردنا إدخال عنوان جديد :

1
p.title = “dtmdeblog post new title”

و في الأخير لم يتبقى لنا سوى حفظ الكائن : p.save

DELETE :

هذا الفعل يُستعمل من أجل حذف الكائن و الذي يقوم بحذف سطر من داخل قاعدة البيانات بواسطة الأمر : DELETE.

في الجزء الثاني من المقال إن شاء الله سأقوم بشرح العلاقات التي يمكن إنشاءها بين الكائنات و كيف يُمكن إدارتها بالActiverecord

التعليقات