Rails
روبي أون ريلز (أو Ruby On Rails أو تدعى اختصارًا Rails)، وسنطلق عليه في هذا الدليل الاسم المختصر «ريلز» فقط، هو إطار لإنشاء تطبيق ويب من جهة الخادم (web application framework) مكتوب بلغة روبي ومفتوح المصدر ومجاني الاستعمال (مرخص برخصة MIT).
يحرص ريلز على راحة المبرمج وبقائه سعيدًا من خلال اتباع أنماط ونماذج مشهورة في هندسة التطبيقات مثل نمط «العرف فوق الضبط» (convention over configuration)، وبذلك اكتسب ريلز شهرة واسعة في أوساط المبرمجين ومطوري الويب.
ولد الإطار ريلز على يد David Heinemeier Hansson عند عمله على إحدى أدوات إدارة المشاريع في شركته التي كان يعمل فيها وكان ذلك في عام 2004 ثم لم يلبث أن اكتسحت شهرة الإطار وقوته سوق بناء تطبيقات الويب ليصبح هذا الإطار مضرب مثلٍ ونموذج يُحتذَى به من قبل العديد من الإطارات في يومنا هذا مثل الإطار Django في Python والإطار Laravel في PHP. أضف إلى ذلك أن جزءًا من الشهرة التي اكتسبتها روبي تعود إلى شهرة هذا الإطار، ريلز.
تستطيع باستعمال ريلز بناء تطبيق ويب حديث ومتميز. أضف إلى ذلك أن ريلز يجعل عملية التطوير سهلة وممتعة، إذ يوفر أي شيء يحتاجه المطوِّر لبناء أروع وأقوى التطبيقات. لابد وأنك قد استعملت مسبقًا أحد تطبيقات الويب التي بنيت باستعمال ريلز ومنها: Basecamp، و GitHup، و Shopify، و SoundCloud ...إلخ. هذه نماذج عن أشهر تطبيقات الويب التي بنيت باستعمال ريلز، ولكن الحقيقة أن هنالك مئات آلالاف التطبيقات غيرها بُنيَت باستعمال ريلز منذ إصداره في عام 2004. هل تحمست لبدء تعلم ريلز؟ إذًا، انطلق!
ابدأ من هنا
البدء مع ريلز
يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات، وما هو التخطيط العام لتطبيق ريلز، والمبادئ الأساسية للنمط MVC والتصميم RESTful، وكيف تولد سريعًا أجزاء البداية لتطبيق ريلز.
المكتبات الأساسية
Action Cable
تعمل المكتبة Action Cable على دمج WebSockets مع بقية تطبيق ريلز الخاص بك بسهولة، إذ تسمح بكتابة الميزات ذات الوقت الحقيقي (real-time features) المنشودة في روبي وفي نفس الصياغة والشكل كسائر تطبيق ريلز الخاص بك مع الحفاظ على سرعة الأداء وقابلية التطور.
Action Mailbox
المكتبة Action Mailbox توجه رسائل البريد الواردة إلى صندوق بريد شبيه بمتحكم لمعالجتها في ريلز. تأتي هذه المكتبة مع mazon SES، و Mailgun، و Mandrill، و Postmark، و SendGrid. يمكنك أيضًا التعامل مع الرسائل الواردة عبر Exim، و Postfix، و Qmail المضمَّنة.
Action Mailer
إنَّ Action Mailer هو إطار عمل لتصميم طبقات خدمة البريد الإلكتروني. تُستخدَم هذه الطبقات لإنشاء شيفرة تعمل على إرسال البريد الإلكتروني المتعلق بكلمات المرور المنسية، ورسائل الترحيب بالعضو الجديد، والفواتير الواجب دفعها، وأية حالة أخرى تتطلب إرسال تنبيه مكتوب إمَّا إلى الشخص نفسه أو إلى نظام آخر.
Action Pack
إن Action Pack هو إطار عمل لمعالجة والرد على طلبيات الويب. يوفر هذا الإطار آليةً للتوجيه (تعيين طلبيات العناوين URL إلى الإجراءات)، ويعرِّف المتحكمات التي تُنفِّذ الإجراءات، ويولد الردود غبر تصيير واجهات العرض (التي هي قوالب مصممة مسبقًا). باختصار، يوفر Action Pack طبقتي العرض والتحكم في النمط MVC (أي الحرفين V من أجل View و C من أجل Controller).
Action Text
يوفر Action Text محتوًى نصيًّا غنيًّا والتعديل في ريلز. يحوي على المحرر Trix الذي يعالج كل شيء بدءًا من التنسيق وحتى روابط الاقتباسات والقوائم والصور المضمَّنة ومعارض الصور.
Action View
إن Action View هو إطار عمل وظيفته هي البحث عن قوالب العروض وتصييرها، وتوفير مساعدي العروض التي تساعد على بناء نماذج HTML (أي HTML forms)، وتغذية Atom وغيرها من الوظائف. تنسيق
Active Job
إن Active Job هو إطار عمل مخصص للتصريح عن الوظائف وتنفيذها على مختلف أنواع الطوابير الخلفية (queuing backend). يمكن أن تكون هذه الوظائف أي شيء بدءًا من عمليات التنظيف المجدولة بشكل منتظم وحتى قيم الفواتير وإرسال رسائل البريد. بعبارة أخرى، يمكن أن تكون هذه الوظائف أي شيء يمكن تجزئته إلى وحدات صغيرة وتنفيذها سويةً على التوازي.
Active Model
يوفر Active Model مجموعة معروفة من الواجهات لاستعمالها في أصناف النماذج (model classes). إنها تسمح لمساعدي Action Pack بالتفاعل مع النماذج التي ليست من Active Record مثلًا. يساعد Active Model في بناء روابط ORM مخصصة (تقنية ربط الكائنات بالعلاقات) للاستعمال خارج إطار ريلز.
Active Record
إنَّ Active Record هو مكتبة تربط أصنافًا بجداول قاعدة بيانات علائقية لتأسيس طبقة ثابتة لا تحتاج إلى ضبط للتطبيقات. توفر المكتبة صنفًا أساسيًّا يضبط - عند تفريع أصناف منه - العلاقة الرابطة بين الصنف الجديد وجدول موجود مسبقًا في قاعدة البيانات. في سياق أي تطبيق، يشار إلى هذه الأصناف عادةً على أنها «نماذج» (models). يمكن ربط النماذج Models أيضًا بنماذج أخرى عبر تعريف ارتباطات.
Active Storage
يجعل Active Storage عملية رفع الملفات وإنشاء مرجع لها في أي خدمة سحابية - مثل Amazon S3، أو Google Cloud Storage، أو Microsoft Azure Storage - وربطها بنماذج Active Record عمليةً بسيطةً وسهلةً. يدعم أيضًا امتلاك خدمة تخزين أساسية في خدمة سحابية، وخدمة تخزين انعكاسية (mirror) في خدمات سحابية أخرى وذلك من أجل تحقيق التوافر الدائم. أضف إلى ذلك أنه يوفر خدمة التخزين على قرص صلب (disk service) للفحص أو النشر المحلي ولكن التركيز الأساسي ينصب على التخزين السحابي.
Active Support
يعدُّ Active Support مجموعة من أصناف الأدوات (utility classes) وملحقات المكتبة القياسية التي وجد أنها مفيدة للاستعمال مع ريلز. توجد هذه الإضافات في هذه الحزمة، لذا يمكن تحميلها عند الحاجة في مشاريع روبي أي خارج إطار ريلز.
النماذج
أساسيات Active Record
هذا الدليل هو مدخل إلى Active Record. بعد قراءة هذا الدليل، ستتعرف على: ما هي تقنية ORM و Active Record وكيفية استعمالهما في ريلز، وكيف ينسجم Active Record مع النموذج MVC، وكيفية استعمال نماذج Active Record لمعالجة وتعديل البيانات المخزَّنة في قاعدة بيانات عِلاقيِّة، واصطلاحات تسمية مخطَّط Active Record، ومفهوم تهجيرات، وتحققات، وردود نداء قاعدة البيانات.
تهجيرات Active Record
التهجيرات (Migrations) هي ميزة من Active Record التي تمكّنك من تحديث مخطط قاعدة البيانات على مر الوقت. بدلًا من كتابة تعديلات قاعدة البيانات باستخدام SQL، تمكّنك التهجيرات من كتابة تعليمات DSL باستخدام روبي لتحديث جداولك. بعد قراءة هذا الدليل، ستتعرَّف على: المولِّدات التي تستطيع استعمالها لإنشاء التهجيرات، والتوابع التي يوفرها Active Record لتعديل قاعدة البيانات، والمهام bin/rails التي تعدِّل وتتحكم بالتهجيرات والمخطط (schema) الخاص بك، والعلاقة بين التهجيرات والملف schema.rb.
عمليات التحقق من Active Record
يعلِّمك هذا الدليل كيفية التحقق من حالة الكائنات قبل إرسالها إلى قاعدة البيانات باستعمال ميزة التحققات من الصحة (validations) التي يوفرها Active Record. بعد قراءة هذا الدليل، ستتعرَّف على: كيفية استعمال مساعدي التحقق من الصحة Active Record المدمجين، وكيفية إنشاء توابع مخصصة للتحقق من الصحة، وكيفية العمل مع رسالة الخطأ المولدة عبر عملية التحقق.
ردود نداء Active Record
ستتعلم في هذا الدليل كل ما يتعلَّق بدورة حياة كائنات Active Record. بعد قراءة هذا الدليل، ستتعرَّف على: دورة حياة كائنات Active Record، وكيفية إنشاء توابع ردود النداء التي تستجيب إلى الأحداث في دورة حياة الكائن، وكيفية إنشاء أصناف خاصة تُغلِّف سلوكًا مشتركًا من أجل ردود النداء الخاصة بك.
ارتباطات Active Record
يغطي هذا الدليل مزايا الارتباطات Active Record. بعد قراءة هذا الدليل، ستتعلم: كيفية التصريح عن الارتباطات بين نماذج Active Record، والأنواع المختلفة للارتباطات في Active Record، وكيفية استعمال التوابع المضافة إلى نماذجك عبر إنشاء الارتباطات.
واجهة استعلامات Active Record
يغطي هذا الدليل مختلف الطرائق المستعملة لجلب واستعادة البيانات من قاعدة البيانات باستعمال Active Record. بعد قراءة هذا الدليل، ستتعلم: كيفية البحث عن السجلات باستعمال توابع وشروط متعددة، وكيفية تحديد الترتيب، والتجميع، والخاصيات المعادة، والخاصيات الأخرى للسجلات التي عُثِر عليها، وكيفية استعمال التحميل الحثيث (eager loading) للتقليل من عدد استعلامات قاعدة البيانات الضرورية لجلب البيانات، وكيفية استعمال توابع البحث الديناميكية، وكيفية استعمال تسلسل التوابع (method chaining) لاستعمال توابع متعددة Active Record سويةً، وكيفية التحقق من تواجد سجلات محددة، وكيفية تنفيذ حسابات مختلفة على نماذج Active Record، وكيفية تشغيل EXPLAIN على العلاقات.
أساسيات Active Model
يجب أن يوفر لك هذا الدليل كل ما تحتاج إليه للبدء في استخدام أصناف Model. يسمح Active Model لمساعدي Action Pack بالتفاعل مع كائنات روبيالصرفة. يساعد Active Model أيضًا على إنشاء قواعد بيانات ORM مخصصة للاستخدام خارج إطار ريلز.
بعد قراءة هذا الدليل، ستتعلم: كيف يعمل نموذج Active Record، وكيف تعمل ردود النداء وعمليات التحقق، وكيف تعمل المُسَلسِلات (serializers)، وكيف يتكامل Active Model مع إطار تدويل ريلز (i18n).
واجهات العرض
نظرة عامة على وحدة العرض
بعد قراءة هذا الدليل، ستتعلم: ما هو Action View وكيفية استخدامه مع ريلز، وأفضل طريقة لاستخدام القوالب والجزئيات (partials) والتخطيطات، وما الذي يقدمه المساعدون عن طريق Action View، وكيفية استخدام العروض المحلية.
تخطيط الصفحات والتصيير
يغطي هذا الدليل ميزات التخطيط الأساسية لوحدتي التحكم والعرض. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام توابع التصيير المختلفة المضمنة في ريلز، وكيفية إنشاء تخطيطات (layouts) تحتوي على أقسام محتوى متعددة، وكيفية استخدام الأجزاء مع واجهات العرض، وكيفية استخدام تخطيطات متداخلة (قوالب فرعية).
مساعدو الاستمارة في وحدة العرض
تعتبر الاستمارات (forms) في تطبيقات الويب واجهة أساسية للتفاعل مع المستخدم وجلب بيانات منه. ومع ذلك، يمكن أن تصبح عملية إنشاء استمارةٍ وصيانتها عمليةً مملةً بسبب الحاجة إلى التحكم بالتسميات وبخاصياتها الكثيرة.
تخلَّص ريلز من هذا التعقيد بتوفير مساعدين للعرض لإنشاء الاستمارات بسهولة. ومع ذلك، بما أن للمساعدين حالات استخدام مختلفة، يحتاج المطورون إلى معرفة الاختلافات بين توابع كل مساعد قبل استخدامها.
المتحكمات
نظرة خاطفة على وحدة التحكم
ستتعرف في هذا الدليل على كيفية عمل Action Controller (وحدات التحكم) وكيفية ملاءمتها مع دورة الطلب (request cycle) في التطبيق الخاص بك. بعد قراءة هذا الدليل، ستتعلم: كيفية اتباع تدفق الطلب من خلال وحدة تحكم، وكيفية تقييد المعاملات التي مُرّرت إلى وحدة التحكم الخاصة بك، وكيف ولماذا تخزَّن البيانات في الجلسة (session) أو ملفات تعريف الارتباط (cookies)، وكيفية العمل مع المرشحات (filters) لتنفيذ التعليمات البرمجية أثناء معالجة الطلب، وكيفية استخدام استيثاق HTTP المضمن في وحدة التحكم، وكيفية تدفق البيانات مباشرة إلى متصفح المستخدم، وكيفية ترشيح المعاملات الحساسة بحيث لا تظهر في سجل التطبيق، وكيفية التعامل مع الاستثناءات التي قد تنشأ أثناء معالجة الطلب.
التوجيه من الخارج والداخل
يغطي هذا الدليل الميزات التي يواجهها المستخدم في عمليات التوجيه في ريلز. بعد قراءة هذا الدليل، ستتعلم: كيفية تفسير الشيفرة في config/routes.rb، وكيفية بناء المسارات الخاصة بك باستخدام إما أسلوب الحيلة (resourceful style) المفضل أو طريقة المطابقة (match method)، وكيفية الإعلان عن معاملات المسار الموجه، والتي تمرر إلى Action Controller، وكيفية إنشاء المسارات وعناوين URL تلقائيًا باستخدام مساعدي المسار الموجه، والتقنيات المتقدمة مثل إنشاء قيود وتثبيت نقاط نهاية Rack.
التعمق أكثر
ملحقات Active Support الأساسية
Active Support هو مكوّن ريلز المسؤول عن توفير ملحقات لغة روبي والأدوات المساعدة والأشياء الأخرى المعترضة.
كما يوفر حدًا أدنى من المعرفة الواسعة على مستوى اللغة يستهدف كل من تطوير تطبيقات ريلز، وتطوير ريلز نفسه. بعد قراءة هذا الدليل، ستتعلم: ماهيّة الملحقات الأساسية، وكيفية تحميل كل الملحقات، وكيفية انتقاء الملحقات التي تريدها فقط، وماهيّ الملحقات التي يوفرها Active Support.
الواجهة البرمجية للتدويل (I18n)
توفّر جوهرة روبي I18n (اختزالٌ للمصطلح "التدويل" [internationalization]) التي تُشحن مع ريلز (بدءًا من الإصدار 2.2) إطارًا سهل الاستخدام وقابلًا للتوسعة لترجمة تطبيقك إلى لغة مخصصّة واحدة بخلاف الإنجليزية أو لتوفير دعم بلغات متعدّدة في تطبيقك.
عادةً ما تعني عمليّة "التدويل" تجريد كل السلاسل النصية والبتات الخاصة الأخرى ذات العلاقة باللغة (مثل تنسيقات التاريخ أو العملة) من تطبيقك. تعني عملية "التوطين" توفير الترجمات والصيغ المحلية لهذه البتات. سيرشدك هذا الدليل إلى استعمال الواجهة البرمجية I18n كما سيعلمك كيفيّة تدويل تطبيق ريلز من البداية.
أساسيات Action Mailer
يوفّر لك هذا الدليل كل ما تحتاجه للبدء في إرسال واستقبال رسائل البريد الإلكتروني من وإلى تطبيقك، والعديد من عمليّات Action Mailer الداخليّة. كما يغطي كيفية اختبار مُرسلي بريدك (mailers).
ستتعلم بعد قراءة هذا الدليل: كيفيّة إرسال واستقبال البريد الإلكتروني داخل تطبيق ريلز، وكيفيّة إنشاء وتعديل صنف Action Mailer والعرض المرتبط به، وكيفيّة إعداد Action Mailer لبيئتك، وكيفيّة اختبار أصنافك لـ Action Mailer.
أساسيات Active Job
يوفّر لك هذا الدليل كل ما تحتاج إليه للبدء في إنشاء وظائف خلفية (background jobs) وإدراجها بطوابير الانتظار وتنفيذها. بعد قراءة هذا الدليل، ستتعلم: كيفيّة إنشاء وظائف، وكيفيّة إدراج الوظائف بالطوابير، وكيفيّة تشغيل الوظائف في الخلفية، وكيفيّة إرسال رسائل البريد الإلكتروني من التطبيق الخاص بك بشكل غير متزامن.
نظرة عامة على Active Storage
يغطّي هذا الدليل كيفيّة إرفاق ملفات بنماذج Active Record. ستتعلم بعد قراءة هذا الدليل: كيفية إرفاق ملف أو عدّة ملفّات بسجلّ (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 الشرطي.
أدوات Active Support
Active Support هو جزء من نواة ريلز التي توفر ملحقات للغة روبي والأدوات المساعدة وغيرها من الأشياء. أحد الأشياء التي يتضمنها هو واجهة برمجية لأدوات قياس (instrumentation API) يمكن استخدامها داخل تطبيق لقياس إجراءات معينة تحدث داخل شيفرة روبي، مثل تلك الموجودة داخل تطبيق ريلز أو إطار العمل نفسه، إذ لا يقتصر ذلك على ريلز فقط. يمكن استخدامها بشكل مستقل في شيفرات روبي البرمجية الأخرى إذا كان ذلك مطلوبًا.
في هذا الدليل، ستتعلم كيفية استخدام الواجهة البرمجية لأدوات القياس (instrumentation API) داخل Active Support لقياس الأحداث داخل ريلز وغيرها من شيفرات روبي.
استعمال ريلز لإنشاء تطبيقات ذات واجهة برمجية فقط
في هذا الدليل ستتعلم: ما تقدمه ريلز للتطبيقات ذات الواجهة البرمجية فقط، كيفية ضبط ريلز للبدء دون أي ميزات للمتصفح، وكيفية تحديد البرامج الوسيطة (middleware) التي تريد تضمينها، وكيفية تحديد الوحدات لاستخدامها في وحدة التحكم الخاصة بك.
نظرة عامة على Action Cable
ستتعرف في هذا الدليل على كيفية عمل Action Cable وكيفية استخدام WebSockets لدمج ميزات الوقت الفعلي في تطبيق ريلز.
بعد قراءة هذا الدليل، ستتلعم: ماهية Action Cable وكيفية دمج الواجهة الخلفية والأمامية الخاصة به، وكيفية إعداد Action Cable، وكيفية إعداد القنوات، والنشر وإعداد المعمارية لتشغيل Action Cable.
توسيع ريلز
أساسيات إنشاء الإضافات
تُعدّ الإضافات في ريلز امتدادًا أو تعديلًا للإطار الأساسي. يصف هذا الدليل كيفية إنشاء واختبار إضافة من شأنها: توسيع أصناف روبي الأساسية مثل Hash
و String
، وإضافة توابع إلى ApplicationRecord
في إضافات act_as
التقليدية، وإعطاء معلومات حول مكان وضع المولدات في الإضافات الخاصة بك.
ريلز مع Rack
يغطي هذا الدليل دمج ريلز مع Rack والتفاعل مع مكونات Rack الأخرى. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام برمجيات Rack الوسيطة في تطبيقات ريلز الخاصة بك، وحزمة البرمجيات الوسيطة الداخلية Action Pack، وكيفية تعريف مكدس برنامج وسيط مخصص (custom Middleware stack).
إنشاء وتخصيص مولدات وقوالب ريلز
مولدات ريلز هي أداة أساسية إذا كنت تخطط لتحسين سير عملك. مع هذا الدليل سوف تتعلم كيفية إنشاء المولدات وتخصيص المولدات الموجودة.
بعد قراءة هذا الدليل، ستتعلم: كيفية معرفة أي المولدات المتوفرة في التطبيق الخاص بك، وكيفية إنشاء مولد باستخدام القوالب، وكيفية بحث ريلز عن المولدات قبل استدعائها، وكيفية إنشاء ريلز داخليًا شيفرة من القوالب، وكيفية تخصيص المولد scaffold عن طريق إنشاء مولدات جديدة، وكيفية تخصيص المولد scaffold عن طريق تغيير قوالب المولدات، وكيفية استخدام التراجعات (fallbacks) لتجنب استبدال مجموعة ضخمة من المولدات، وكيفية إنشاء قالب التطبيق.
البدء مع المحركات
ستتعرف في هذا الدليل على المحركات (engines) وكيف يمكن استخدامها لتوفير وظائف إضافية لتطبيقاتها المضيفة من خلال واجهة واضحة وسهلة الاستخدام للغاية.
بعد قراءة هذا الدليل، ستتعلم: مما يتكون المحرك، وكيف وُلِّد المحرك، وكيفية بناء ميزات للمحرك، وكيفية ربط المحرك في التطبيق، وكيفية استبدال وظيفة المحرك في التطبيق، وتجنب تحميل أطر ريلز مع خطافات التحميل (Load Hooks) وخطافات الضبط (Configuration Hooks).
الخيوط وتنفيذ الشيفرة في ريلز
بعد قراءة هذا الدليل، ستتلعم: ما هي شيفرة ريلز التي ستُنفَّذ تلقائيا في وقت واحد، وكيفية دمج التزامن اليدوي مع أجزاء ريلز الداخلية، وكيفية تغليف كل شيفرة التطبيق، وكيف التأثير على عملية إعادة تحميل التطبيق.