Rails/Topics
ابدأ من هنا
البدء مع ريلز
يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات، وما هو التخطيط العام لتطبيق ريلز، والمبادئ الأساسية للنمط MVC والتصميم RESTful، وكيف تولد سريعًا أجزاء البداية لتطبيق ريلز.
النماذج
أساسيات السجل الفعال
هذا الدليل هو مدخل إلى السجل الفعَّال (Active Record). بعد قراءة هذا الدليل، ستتعرف على: ما هي تقنية ORM والسجل الفعَّال وكيفية استعمالهما في ريلز، وكيف ينسجم السجل الفعَّال مع النموذج MVC، وكيفية استعمال نماذج السجل الفعَّال لمعالجة وتعديل البيانات المخزَّنة في قاعدة بيانات عِلاقيِّة، واصطلاحات تسمية مخطَّط السجل الفعَّال، ومفهوم تهجيرات، وتحققات، وردود نداء قاعدة البيانات.
تهجيرات السجل الفعال
التهجيرات (Migrations) هي ميزة من السجل الفعال التي تمكّنك من تحديث مخطط قاعدة البيانات على مر الوقت. بدلًا من كتابة تعديلات قاعدة البيانات باستخدام SQL، تمكّنك التهجيرات من كتابة تعليمات DSL باستخدام روبي لتحديث جداولك. بعد قراءة هذا الدليل، ستتعرَّف على: المولِّدات التي تستطيع استعمالها لإنشاء التهجيرات، والتوابع التي يوفرها السجل الفعَّال لتعديل قاعدة البيانات، والمهام bin/rails التي تعدِّل وتتحكم بالتهجيرات والمخطط (schema) الخاص بك، والعلاقة بين التهجيرات والملف schema.rb.
عمليات التحقق من السجل الفعال
يعلِّمك هذا الدليل كيفية التحقق من حالة الكائنات قبل إرسالها إلى قاعدة البيانات باستعمال ميزة التحققات من الصحة (validations) التي يوفرها السجل الفعَّال. بعد قراءة هذا الدليل، ستتعرَّف على: كيفية استعمال مساعدي التحقق من الصحة للسجل الفعَّال المدمجين، وكيفية إنشاء توابع مخصصة للتحقق من الصحة، وكيفية العمل مع رسالة الخطأ المولدة عبر عملية التحقق.
ردود نداء السجل الفعال
ستتعلم في هذا الدليل كل ما يتعلَّق بدورة حياة كائنات السجل الفعَّال. بعد قراءة هذا الدليل، ستتعرَّف على: دورة حياة كائنات السجل الفعَّال، وكيفية إنشاء توابع ردود النداء التي تستجيب إلى الأحداث في دورة حياة الكائن، وكيفية إنشاء أصناف خاصة تُغلِّف سلوكًا مشتركًا من أجل ردود النداء الخاصة بك.
ارتباطات السجل الفعال
يغطي هذا الدليل مزايا الارتباطات للسجل الفعَّال. بعد قراءة هذا الدليل، ستتعلم: كيفية التصريح عن الارتباطات بين نماذج السجل الفعَّال، والأنواع المختلفة للارتباطات في السجل الفعَّال، وكيفية استعمال التوابع المضافة إلى نماذجك عبر إنشاء الارتباطات.
واجهة استعلامات السجل الفعال
يغطي هذا الدليل مختلف الطرائق المستعملة لجلب واستعادة البيانات من قاعدة البيانات باستعمال السجل الفعَّال. بعد قراءة هذا الدليل، ستتعلم: كيفية البحث عن السجلات باستعمال توابع وشروط متعددة، وكيفية تحديد الترتيب، والتجميع، والخاصيات المعادة، والخاصيات الأخرى للسجلات التي عُثِر عليها، وكيفية استعمال التحميل الحثيث (eager loading) للتقليل من عدد استعلامات قاعدة البيانات الضرورية لجلب البيانات، وكيفية استعمال توابع البحث الديناميكية، وكيفية استعمال تسلسل التوابع (method chaining) لاستعمال توابع متعددة للسجل الفعال سويةً، وكيفية التحقق من تواجد سجلات محددة، وكيفية تنفيذ حسابات مختلفة على نماذج السجل الفعال، وكيفية تشغيل EXPLAIN على العلاقات.
أساسيات النموذج الفعال
يجب أن يوفر لك هذا الدليل كل ما تحتاج إليه للبدء في استخدام أصناف النموذج (model classes). يسمح النموذج الفعَّال (Active Model) لمساعدي الإجراء Pack
بالتفاعل مع كائنات روبيالصرفة. يساعد النموذج الفعَّال أيضًا على إنشاء قواعد بيانات ORM مخصصة للاستخدام خارج إطار ريلز.
بعد قراءة هذا الدليل، ستتعلم: كيف يعمل نموذج السجل الفعَّال، وكيف تعمل ردود النداء وعمليات التحقق، وكيف تعمل المُسَلسِلات (serializers)، وكيف يتكامل النموذج الفعال مع إطار تدويل ريلز (i18n).
واجهات العرض
نظرة عامة على وحدة العرض
بعد قراءة هذا الدليل، ستتعلم: ما هو إجراء العرض (Action View) وكيفية استخدامه مع ريلز، وأفضل طريقة لاستخدام القوالب والجزئيات (partials) والتخطيطات، وما الذي يقدمه المساعدون عن طريق إجراء العرض، وكيفية استخدام العروض المحلية.
تخطيط الصفحات والتصيير
يغطي هذا الدليل ميزات التخطيط الأساسية لوحدتي التحكم والعرض. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام توابع التصيير المختلفة المضمنة في ريلز، وكيفية إنشاء تخطيطات (layouts) تحتوي على أقسام محتوى متعددة، وكيفية استخدام الأجزاء مع واجهات العرض، وكيفية استخدام تخطيطات متداخلة (قوالب فرعية).
مساعدو الاستمارة في وحدة العرض
تعتبر الاستمارات (forms) في تطبيقات الويب واجهة أساسية للتفاعل مع المستخدم وجلب بيانات منه. ومع ذلك، يمكن أن تصبح عملية إنشاء استمارةٍ وصيانتها عمليةً مملةً بسبب الحاجة إلى التحكم بالتسميات وبخاصياتها الكثيرة.
تخلَّص ريلز من هذا التعقيد بتوفير مساعدين للعرض لإنشاء الاستمارات بسهولة. ومع ذلك، بما أن للمساعدين حالات استخدام مختلفة، يحتاج المطورون إلى معرفة الاختلافات بين توابع كل مساعد قبل استخدامها.
المتحكمات
نظرة خاطفة على وحدة التحكم
ستتعرف في هذا الدليل على كيفية عمل وحدات التحكم (Controller) وكيفية ملاءمتها مع دورة الطلب (request cycle) في التطبيق الخاص بك. بعد قراءة هذا الدليل، ستتعلم: كيفية اتباع تدفق الطلب من خلال وحدة تحكم، وكيفية تقييد المعاملات التي مُرّرت إلى وحدة التحكم الخاصة بك، وكيف ولماذا تخزَّن البيانات في الجلسة (session) أو ملفات تعريف الارتباط (cookies)، وكيفية العمل مع المرشحات (filters) لتنفيذ التعليمات البرمجية أثناء معالجة الطلب، وكيفية استخدام استيثاق HTTP المضمن في وحدة التحكم، وكيفية تدفق البيانات مباشرة إلى متصفح المستخدم، وكيفية ترشيح المعاملات الحساسة بحيث لا تظهر في سجل التطبيق، وكيفية التعامل مع الاستثناءات التي قد تنشأ أثناء معالجة الطلب.
التوجيه من الخارج والداخل
يغطي هذا الدليل الميزات التي يواجهها المستخدم في عمليات التوجيه في ريلز. بعد قراءة هذا الدليل، ستتعلم: كيفية تفسير الشيفرة في config/routes.rb، وكيفية بناء المسارات الخاصة بك باستخدام إما أسلوب الحيلة (resourceful style) المفضل أو طريقة المطابقة (match method)، وكيفية الإعلان عن معاملات المسار الموجه، والتي تمرر إلى إجراءات وحدة التحكم (controller actions)، وكيفية إنشاء المسارات وعناوين URL تلقائيًا باستخدام مساعدي المسار الموجه، والتقنيات المتقدمة مثل إنشاء قيود وتثبيت نقاط نهاية Rack.
التعمق أكثر
ملحقات الدعم الفعال الأساسية
الدعم الفعَّال (Active Support) هو مكوّن ريلز المسؤول عن توفير ملحقات لغة روبي والأدوات المساعدة والأشياء الأخرى المعترضة.
كما يوفر حدًا أدنى من المعرفة الواسعة على مستوى اللغة يستهدف كل من تطوير تطبيقات ريلز، وتطوير ريلز نفسه. بعد قراءة هذا الدليل، ستتعلم: ماهيّة الملحقات الأساسية، وكيفية تحميل كل الملحقات، وكيفية انتقاء الملحقات التي تريدها فقط، وماهيّ الملحقات التي يوفرها الدعم الفعَّال.
الواجهة البرمجية للتدويل (I18n)
توفّر جوهرة روبي I18n (اختزالٌ للمصطلح "التدويل" [internationalization]) التي تُشحن مع ريلز (بدءًا من الإصدار 2.2) إطارًا سهل الاستخدام وقابلًا للتوسعة لترجمة تطبيقك إلى لغة مخصصّة واحدة بخلاف الإنجليزية أو لتوفير دعم بلغات متعدّدة في تطبيقك.
عادةً ما تعني عمليّة "التدويل" تجريد كل السلاسل النصية والبتات الخاصة الأخرى ذات العلاقة باللغة (مثل تنسيقات التاريخ أو العملة) من تطبيقك. تعني عملية "التوطين" توفير الترجمات والصيغ المحلية لهذه البتات. سيرشدك هذا الدليل إلى استعمال الواجهة البرمجية I18n كما سيعلمك كيفيّة تدويل تطبيق ريلز من البداية.
أساسيات إجراء المراسلة
يوفّر لك هذا الدليل كل ما تحتاجه للبدء في إرسال واستقبال رسائل البريد الإلكتروني من وإلى تطبيقك، والعديد من عمليّات إجراء المراسلة (Action Mailer) الداخليّة. كما يغطي كيفية اختبار مُرسلي بريدك (mailers).
ستتعلم بعد قراءة هذا الدليل: كيفيّة إرسال واستقبال البريد الإلكتروني داخل تطبيق ريلز، وكيفيّة إنشاء وتعديل صنف إجراء المراسلة والعرض المرتبط به، وكيفيّة إعداد إجراء المراسلة لبيئتك، وكيفيّة اختبار أصنافك لإجراء المراسلة.
أساسيات الوظيفة الفعالة
يوفّر لك هذا الدليل كل ما تحتاج إليه للبدء في إنشاء وظائف خلفية (background jobs) وإدراجها بطوابير الانتظار وتنفيذها. بعد قراءة هذا الدليل، ستتعلم: كيفيّة إنشاء وظائف، وكيفيّة إدراج الوظائف بالطوابير، وكيفيّة تشغيل الوظائف في الخلفية، وكيفيّة إرسال رسائل البريد الإلكتروني من التطبيق الخاص بك بشكل غير متزامن.
نظرة عامة على التخزين الفعال
يغطّي هذا الدليل كيفيّة إرفاق ملفات بنماذج السّجلّ الفعّال. ستتعلم بعد قراءة هذا الدليل: كيفية إرفاق ملف أو عدّة ملفّات بسجلّ (record)، وكيفيّة حذف ملف مُرفق، وكيفيّة الربط بملف مُرفق، وكيفيّة استخدام المتغيّرات (variants) لتحويل الصور، وكيفيّة إنشاء تمثيل صُوَري (image representation) لملف غير صُوَري، مثل ملف PDF أو فيديو، وكيفيّة إرسال تحميلات الملفّات مباشرةً من المتصفّحات إلى خدمة تخزين، دون المرور على خوادم تطبيقك، وكيفيّة تنظيف الملفّات المخزّنة أثناء الاختبار، وكيفيّة تعريف استخدام (implement) الدعم لخدمات تخزين إضافيّة.
اختبار تطبيقات ريلز
يشمل هذا الدليل الآليّات المدمجة في ريلز لإجراء الاختبارت على التطبيقات. بعد قراءة هذا الدليل، ستتعلم: الاصطلاح المتعلّق باختبارات ريلز، وكيفيّة كتابة كلٍّ من اختبارات الوحدة، الاختبارات الوظيفيّة، والاختبارات التكامليّة لتطبيقات ريلز، وغيرها من الطرق والإضافات الخاصّة بالاختبارات.
تأمين تطبيقات ريلز
يصف هذا الدليل مشاكل الأمان الشائعة في تطبيقات الويب وكيفية تجنبها باستخدام ريلز. بعد قراءة هذا الدليل، ستتلعم: جميع التدابير المضادة التي سيسلط الضوء عليها، ومفهوم الجلسات (sessions) في ريلز، و ما يُنفذ في وجود وسائل الهجوم المعروفة، وكيف يمكن أن يكون مجرد زيارة أحد المواقع مشكلة أمنية (مع CSRF)، وما عليك الانتباه عند العمل مع الملفات أو توفير واجهة إدارة، وكيفية إدارة المستخدمين: تسجيل الدخول والخروج وهجمات الطرق على جميع الطبقات، وأكثر الطرق المعروفة لهجوم الحقن.
تنقيح تطبيقات ريلز
يقدّم هذا الدليل التقنيات اللازمة لتنقيح تطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلّم: الغرض من التنقيح، وكيفة تتبّع العلل والأخطاء التي لا تتعرّف عليها الاختبارات في تطبيقك، وطرقًا مختلفة للتنقيح، وكيفيّة تحليل أثر المكدس.
ضبط تطبيقات ريلز
يغطي هذا الدليل ميزات الضبط والتهيئة المتاحة لتطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلم: كيفية ضبط سلوك تطبيقات ريلز، وكيفية إضافة شيفرة مصدريّة إضافية لتنفيذها وقت بدء تشغيل التطبيق.
سطر أوامر ريلز
بعد قراءة هذا الدّليل، ستتمكّن من: إنشاء تطبيق ريلز، وتوليد النماذج، ووحدات التحكّم، وتهجيرات قاعدة البيانات (database migrations)، ووحدات الاختبار، وبدء الخادم الإنتاجي، وكيفية تجربة الكائنات من خلال صدفة تفاعليّة (interactive shell).
خط أنابيب الأصول
يغطّي هذا الدليل أنبوب الأصول. ستتعلم بعد قراءة هذا الدليل: ماهيّة أنبوب الأصول وماذا يفعل، كيفيّة تنظيم أصول تطبيقك بشكل صحيح، وفوائد أنبوب الأصول، وكيفيّة إضافة معالج مسبق (pre-processor) إلى الأنبوب، وكيفيّة وضع الأصول مع جوهرة في حزمة.
العمل مع JavaScript
يغطي هذا الدليل وظيفة Ajax/JavaScript المضمّنة في ريلز (والمزيد)؛ وسوف يمكنك من إنشاء تطبيقات Ajax غنية وديناميكية بكل سهولة!
ستتعلم بعد قراءة هذا الدليل: أساسيات Ajax، جافاسكربت الواضحة (Unobtrusive JavaScript)، كيف يساعدك مساعدو ريلز المدمجون (built-in helpers)، وكيفية التعامل مع Ajax من طرف الخادم، والجوهرة Turbolinks.
عملية تهيئة ريلز
يشرح هذا الدليل العمل الداخلي لعملية التهيئة في ريلز. وهو دليل متعمق للغاية وموصى به لمطوري ريلز المتقدمّين.
ستتعلم بعد قراءة هذا الدليل: كيفيّة استخدام خادم ريلز (rails server)، والتسلسل الزمني لتهيئة ريلز، وأين تُطلَب الملفّات المختلفة أثناء تسلسل التمهيد، وكيفيّة تعريف واجهة Rails::Server
واستخدامها.
التحميل التلقائي وإعادة تحميل الثوابت
يوثق هذا الدليل طريقة عمل التحميل التلقائي وإعادة تحميل الثوابت. بعد قراءة هذا الدليل، ستتعلم: الجوانب الرئيسية لثوابت لغة روبي، وماهية autoload_paths
وكيفية عمل التحميل الحثيث (eager loading) في الإنتاج، وكيفية عمل التحميل التلقائي للثابت، وماهية need_dependency
، وكيفية عمل إعادة التحميل للثابت، وحلول للتحميل التلقائي المشترك.
نظرة سريعة على التخزين الداخلي المؤقت
هذا الدليل عبارة عن مدخل يطلعك على كيفية تسريع تطبيق ريلز عبر التخزين المؤقت. بعد قراءة هذا الدليل، ستتعلم: أسلوب تخزين الأجزاء (fragment caching) وأسلوب تخزين الدمية الروسية (Russian doll caching)، وكيفية إدارة اعتماديات التخزين المؤقت، ومخازن ذاكرة التخزين المؤقت البديلة، ودعم GET الشرطي.
أدوات الدعم الفعَّال
الدعم الفعال هو جزء من نواة ريلز التي توفر ملحقات للغة روبي والأدوات المساعدة وغيرها من الأشياء. أحد الأشياء التي يتضمنها هو واجهة برمجية لأدوات قياس (instrumentation API) يمكن استخدامها داخل تطبيق لقياس إجراءات معينة تحدث داخل شيفرة روبي، مثل تلك الموجودة داخل تطبيق ريلز أو إطار العمل نفسه، إذ لا يقتصر ذلك على ريلز فقط. يمكن استخدامها بشكل مستقل في شيفرات روبي البرمجية الأخرى إذا كان ذلك مطلوبًا.
في هذا الدليل، ستتعلم كيفية استخدام الواجهة البرمجية لأدوات القياس (instrumentation API) داخل الدعم الفعال لقياس الأحداث داخل ريلز وغيرها من شيفرات روبي.
استعمال ريلز لإنشاء تطبيقات ذات واجهة برمجية فقط
في هذا الدليل ستتعلم: ما تقدمه ريلز للتطبيقات ذات الواجهة البرمجية فقط، كيفية ضبط ريلز للبدء دون أي ميزات للمتصفح، وكيفية تحديد البرامج الوسيطة (middleware) التي تريد تضمينها، وكيفية تحديد الوحدات لاستخدامها في وحدة التحكم الخاصة بك.
نظرة عامة على إجراء الربط
ستتعرف في هذا الدليل على كيفية عمل إجراء الربط (Action Cable) وكيفية استخدام WebSockets لدمج ميزات الوقت الفعلي في تطبيق ريلز.
بعد قراءة هذا الدليل، ستتلعم: ماهية إجراء الربط وكيفية دمج الواجهة الخلفية والأمامية الخاصة به، وكيفية إعداد إجراء الربط (Action Cable)، وكيفية إعداد القنوات، والنشر وإعداد المعمارية لتشغيل إجراء الربط.
توسيع ريلز
أساسيات إنشاء الإضافات
تُعدّ الإضافات في ريلز امتدادًا أو تعديلًا للإطار الأساسي. يصف هذا الدليل كيفية إنشاء واختبار إضافة من شأنها: توسيع أصناف روبي الأساسية مثل Hash
و String
، وإضافة توابع إلى ApplicationRecord
في إضافات act_as
التقليدية، وإعطاء معلومات حول مكان وضع المولدات في الإضافات الخاصة بك.
ريلز مع Rack
يغطي هذا الدليل دمج ريلز مع Rack والتفاعل مع مكونات Rack الأخرى. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام برمجيات Rack الوسيطة في تطبيقات ريلز الخاصة بك، وحزمة البرمجيات الوسيطة الداخلية للإجراء Pack، وكيفية تعريف مكدس برنامج وسيط مخصص (custom Middleware stack).
إنشاء وتخصيص مولدات وقوالب ريلز
مولدات ريلز هي أداة أساسية إذا كنت تخطط لتحسين سير عملك. مع هذا الدليل سوف تتعلم كيفية إنشاء المولدات وتخصيص المولدات الموجودة.
بعد قراءة هذا الدليل، ستتعلم: كيفية معرفة أي المولدات المتوفرة في التطبيق الخاص بك، وكيفية إنشاء مولد باستخدام القوالب، وكيفية بحث ريلز عن المولدات قبل استدعائها، وكيفية إنشاء ريلز داخليًا شيفرة من القوالب، وكيفية تخصيص المولد scaffold عن طريق إنشاء مولدات جديدة، وكيفية تخصيص المولد scaffold عن طريق تغيير قوالب المولدات، وكيفية استخدام التراجعات (fallbacks) لتجنب استبدال مجموعة ضخمة من المولدات، وكيفية إنشاء قالب التطبيق.
البدء مع المحركات
ستتعرف في هذا الدليل على المحركات وكيف يمكن استخدامها لتوفير وظائف إضافية لتطبيقاتها المضيفة من خلال واجهة نظيفة وسهلة الاستخدام للغاية.
بعد قراءة هذا الدليل، ستتعلم: ما الذي يجعله محركًا، كيف تولد المحرك، وكيفية بناء ميزات للمحرك، وكيفية ربط المحرك في التطبيق، وكيفية تجاوز وظيفة المحرك في التطبيق، وتجنب تحميل أطر Rails مع تحميل وإعداد تكوين الخطاف.
الخيوط وتنفيذ الشيفرة في ريلز
بعد قراءة هذا الدليل، ستتلعم: ما هي شيفرة ريلز التي ستُنفَّذ تلقائيا في وقت واحد، وكيفية دمج التزامن اليدوي مع أجزاء ريلز الداخلية، وكيفية تغليف كل شيفرة التطبيق، وكيف التأثير على عملية إعادة تحميل التطبيق.