الفرق بين المراجعتين لصفحة: «Rails/Topics»

من موسوعة حسوب
إضافة محتوى الأقسام
طلا ملخص تعديل
 
(2 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 3: سطر 3:
=== [[Rails/getting started|البدء مع ريلز]] ===
=== [[Rails/getting started|البدء مع ريلز]] ===
يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات، وما هو التخطيط العام لتطبيق ريلز، والمبادئ الأساسية للنمط MVC والتصميم RESTful، وكيف تولد سريعًا أجزاء البداية لتطبيق ريلز.
يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات، وما هو التخطيط العام لتطبيق ريلز، والمبادئ الأساسية للنمط MVC والتصميم RESTful، وكيف تولد سريعًا أجزاء البداية لتطبيق ريلز.
=== المكتبات الأساسية ===
==== [[Rails/action cable|Action Cable]] ====
تعمل المكتبة Action Cable على دمج WebSockets مع بقية تطبيق ريلز الخاص بك بسهولة، إذ تسمح بكتابة الميزات ذات الوقت الحقيقي (real-time features) المنشودة في روبي وفي نفس الصياغة والشكل كسائر تطبيق ريلز الخاص بك مع الحفاظ على سرعة الأداء وقابلية التطور. 
==== [[Rails/action mailbox|Action Mailbox]] ====
المكتبة Action Mailbox توجه رسائل البريد الواردة إلى صندوق بريد شبيه بمتحكم لمعالجتها في ريلز. تأتي هذه المكتبة مع mazon SES، و Mailgun، و Mandrill، و Postmark، و SendGrid. يمكنك أيضًا التعامل مع الرسائل الواردة عبر Exim، و Postfix، و Qmail المضمَّنة.
==== [[Rails/action mailer|Action Mailer]] ====
إنَّ Action Mailer هو إطار عمل لتصميم طبقات خدمة البريد الإلكتروني. تُستخدَم هذه الطبقات لإنشاء شيفرة تعمل على إرسال البريد الإلكتروني المتعلق بكلمات المرور المنسية، ورسائل الترحيب بالعضو الجديد، والفواتير الواجب دفعها، وأية حالة أخرى تتطلب إرسال تنبيه مكتوب إمَّا إلى الشخص نفسه أو إلى نظام آخر.
==== [[Rails/action pack|Action Pack]] ====
إن Action Pack هو إطار عمل لمعالجة والرد على طلبيات الويب. يوفر هذا الإطار آليةً للتوجيه (تعيين طلبيات العناوين URL إلى الإجراءات)، ويعرِّف المتحكمات التي تُنفِّذ الإجراءات، ويولد الردود غبر تصيير واجهات العرض (التي هي قوالب مصممة مسبقًا). باختصار، يوفر Action Pack طبقتي العرض والتحكم في النمط MVC (أي الحرفين V من أجل View و C من أجل Controller).
==== [[Rails/action text|Action Text]] ====
يوفر Action Text محتوًى نصيًّا غنيًّا والتعديل في ريلز. يحوي على [https://trix-editor.org/ المحرر Trix] الذي يعالج كل شيء بدءًا من التنسيق وحتى روابط الاقتباسات والقوائم والصور المضمَّنة ومعارض الصور.
==== [[Rails/action view|Action View]] ====
إن Action View هو إطار عمل وظيفته هي البحث عن قوالب العروض وتصييرها، وتوفير مساعدي العروض التي تساعد على بناء نماذج HTML (أي HTML forms)، وتغذية Atom وغيرها من الوظائف. تنسيق
==== [[Rails/active job|Active Job]] ====
إن Active Job هو إطار عمل مخصص للتصريح عن الوظائف وتنفيذها على مختلف أنواع الطوابير الخلفية (queuing backend). يمكن أن تكون هذه الوظائف أي شيء بدءًا من عمليات التنظيف المجدولة بشكل منتظم وحتى قيم الفواتير وإرسال رسائل البريد. بعبارة أخرى، يمكن أن تكون هذه الوظائف أي شيء يمكن تجزئته إلى وحدات صغيرة وتنفيذها سويةً على التوازي.
==== [[Rails/active model|Active Model]] ====
يوفر Active Model مجموعة معروفة من الواجهات لاستعمالها في أصناف النماذج (model classes). إنها تسمح لمساعدي <nowiki/>[[Rails/action pack|Action Pack]] بالتفاعل مع النماذج التي ليست من <nowiki/>[[Rails/active record|Active Record]] مثلًا. يساعد Active Model في بناء روابط ORM مخصصة (تقنية ربط الكائنات بالعلاقات) للاستعمال خارج إطار ريلز.
==== [[Rails/active record|Active Record]] ====
إنَّ Active Record هو مكتبة تربط أصنافًا بجداول قاعدة بيانات علائقية لتأسيس طبقة ثابتة لا تحتاج إلى ضبط للتطبيقات. توفر المكتبة صنفًا أساسيًّا يضبط - عند تفريع أصناف منه - العلاقة الرابطة بين الصنف الجديد وجدول موجود مسبقًا في قاعدة البيانات. في سياق أي تطبيق، يشار إلى هذه الأصناف عادةً على أنها «نماذج» (models). يمكن ربط النماذج Models أيضًا بنماذج أخرى عبر تعريف <nowiki/>[[Rails/association basics|ارتباطات]].
==== [[Rails/active storage|Active Storage]] ====
يجعل Active Storage عملية رفع الملفات وإنشاء مرجع لها في أي خدمة سحابية - مثل [https://aws.amazon.com/s3/ Amazon S3]، أو [https://cloud.google.com/storage/docs/ Google Cloud Storage]، أو [https://azure.microsoft.com/en-us/services/storage/ Microsoft Azure Storage] - وربطها بنماذج <nowiki/>[[Rails/active record|Active Record]] عمليةً بسيطةً وسهلةً. يدعم أيضًا امتلاك خدمة تخزين أساسية في خدمة سحابية، وخدمة تخزين انعكاسية (mirror) في خدمات سحابية أخرى وذلك من أجل تحقيق التوافر الدائم. أضف إلى ذلك أنه يوفر خدمة التخزين على قرص صلب (disk service) للفحص أو النشر المحلي ولكن التركيز الأساسي ينصب على التخزين السحابي.
==== [[Rails/active support|Active Support]] ====
يعدُّ Active Support مجموعة من أصناف الأدوات (utility classes) وملحقات المكتبة القياسية التي وجد أنها مفيدة للاستعمال مع ريلز. توجد هذه الإضافات في هذه الحزمة، لذا يمكن تحميلها عند الحاجة في مشاريع روبي أي خارج إطار ريلز.


== النماذج ==
== النماذج ==


=== [[Rails/active record basics|أساسيات السجل الفعال]] ===
=== [[Rails/active record basics|أساسيات Active Record]] ===
هذا الدليل هو مدخل إلى السجل الفعَّال (Active Record). بعد قراءة هذا الدليل، ستتعرف على: ما هي تقنية ORM والسجل الفعَّال وكيفية استعمالهما في ريلز، وكيف ينسجم السجل الفعَّال مع النموذج MVC، وكيفية استعمال نماذج السجل الفعَّال لمعالجة وتعديل البيانات المخزَّنة في قاعدة بيانات عِلاقيِّة، واصطلاحات تسمية مخطَّط السجل الفعَّال، ومفهوم تهجيرات، وتحققات، وردود نداء قاعدة البيانات.
هذا الدليل هو مدخل إلى [[Rails/active record|Active Record]]. بعد قراءة هذا الدليل، ستتعرف على: ما هي تقنية ORM و [[Rails/active record|Active Record]] وكيفية استعمالهما في ريلز، وكيف ينسجم [[Rails/active record|Active Record]] مع النموذج MVC، وكيفية استعمال نماذج [[Rails/active record|Active Record]] لمعالجة وتعديل البيانات المخزَّنة في قاعدة بيانات عِلاقيِّة، واصطلاحات تسمية مخطَّط [[Rails/active record|Active Record]]، ومفهوم تهجيرات، وتحققات، وردود نداء قاعدة البيانات.


=== [[Rails/active record migrations|تهجيرات السجل الفعال]] ===
=== [[Rails/active record migrations|تهجيرات Active Record]] ===
التهجيرات (Migrations) هي ميزة من <nowiki/>[[Rails/active record basics|السجل الفعال]] التي تمكّنك من تحديث مخطط قاعدة البيانات على مر الوقت. بدلًا من كتابة تعديلات قاعدة البيانات باستخدام SQL، تمكّنك التهجيرات من كتابة تعليمات DSL باستخدام <nowiki/>[[Ruby|روبي]] لتحديث جداولك. بعد قراءة هذا الدليل، ستتعرَّف على: المولِّدات التي تستطيع استعمالها لإنشاء التهجيرات، والتوابع التي يوفرها السجل الفعَّال لتعديل قاعدة البيانات، والمهام bin/rails التي تعدِّل وتتحكم بالتهجيرات والمخطط (schema) الخاص بك، والعلاقة بين التهجيرات والملف schema.rb.
التهجيرات (Migrations) هي ميزة من <nowiki/>[[Rails/active record basics|Active Record]]<nowiki/><nowiki/> التي تمكّنك من تحديث مخطط قاعدة البيانات على مر الوقت. بدلًا من كتابة تعديلات قاعدة البيانات باستخدام SQL، تمكّنك التهجيرات من كتابة تعليمات DSL باستخدام <nowiki/>[[Ruby|روبي]] لتحديث جداولك. بعد قراءة هذا الدليل، ستتعرَّف على: المولِّدات التي تستطيع استعمالها لإنشاء التهجيرات، والتوابع التي يوفرها [[Rails/active record|Active Record]] لتعديل قاعدة البيانات، والمهام bin/rails التي تعدِّل وتتحكم بالتهجيرات والمخطط (schema) الخاص بك، والعلاقة بين التهجيرات والملف schema.rb.


=== [[Rails/active record validations|عمليات التحقق من السجل الفعال]] ===
=== [[Rails/active record validations|عمليات التحقق من Active Record]] ===
يعلِّمك هذا الدليل كيفية التحقق من حالة الكائنات قبل إرسالها إلى قاعدة البيانات باستعمال ميزة التحققات من الصحة (validations) التي يوفرها السجل الفعَّال. بعد قراءة هذا الدليل، ستتعرَّف على: كيفية استعمال مساعدي التحقق من الصحة للسجل الفعَّال المدمجين، وكيفية إنشاء توابع مخصصة للتحقق من الصحة، وكيفية العمل مع رسالة الخطأ المولدة عبر عملية التحقق.
يعلِّمك هذا الدليل كيفية التحقق من حالة الكائنات قبل إرسالها إلى قاعدة البيانات باستعمال ميزة التحققات من الصحة (validations) التي يوفرها [[Rails/active record|Active Record]]. بعد قراءة هذا الدليل، ستتعرَّف على: كيفية استعمال مساعدي التحقق من الصحة [[Rails/active record|Active Record]] المدمجين، وكيفية إنشاء توابع مخصصة للتحقق من الصحة، وكيفية العمل مع رسالة الخطأ المولدة عبر عملية التحقق.


=== [[Rails/active record callbacks|ردود نداء السجل الفعال]] ===
=== [[Rails/active record callbacks|ردود نداء Active Record]] ===
ستتعلم في هذا الدليل كل ما يتعلَّق بدورة حياة كائنات السجل الفعَّال. بعد قراءة هذا الدليل، ستتعرَّف على: دورة حياة كائنات السجل الفعَّال، وكيفية إنشاء توابع ردود النداء التي تستجيب إلى الأحداث في دورة حياة الكائن، وكيفية إنشاء أصناف خاصة تُغلِّف سلوكًا مشتركًا من أجل ردود النداء الخاصة بك.
ستتعلم في هذا الدليل كل ما يتعلَّق بدورة حياة كائنات [[Rails/active record|Active Record]]. بعد قراءة هذا الدليل، ستتعرَّف على: دورة حياة كائنات [[Rails/active record|Active Record]]، وكيفية إنشاء توابع ردود النداء التي تستجيب إلى الأحداث في دورة حياة الكائن، وكيفية إنشاء أصناف خاصة تُغلِّف سلوكًا مشتركًا من أجل ردود النداء الخاصة بك.


=== [[Rails/association basics|ارتباطات السجل الفعال]] ===
=== [[Rails/association basics|ارتباطات Active Record]] ===
يغطي هذا الدليل مزايا الارتباطات <nowiki/>[[Rails/active record basics|للسجل الفعَّال]]. بعد قراءة هذا الدليل، ستتعلم: كيفية التصريح عن الارتباطات بين نماذج السجل الفعَّال، والأنواع المختلفة للارتباطات في السجل الفعَّال، وكيفية استعمال التوابع المضافة إلى نماذجك عبر إنشاء الارتباطات.
يغطي هذا الدليل مزايا الارتباطات <nowiki/>[[Rails/active record basics|Active Record]]<nowiki/>. بعد قراءة هذا الدليل، ستتعلم: كيفية التصريح عن الارتباطات بين نماذج [[Rails/active record|Active Record]]، والأنواع المختلفة للارتباطات في [[Rails/active record|Active Record]]، وكيفية استعمال التوابع المضافة إلى نماذجك عبر إنشاء الارتباطات.


=== [[Rails/active record querying|واجهة استعلامات السجل الفعال]] ===
=== [[Rails/active record querying|واجهة استعلامات Active Record]] ===
يغطي هذا الدليل مختلف الطرائق المستعملة لجلب واستعادة البيانات من قاعدة البيانات باستعمال السجل الفعَّال. بعد قراءة هذا الدليل، ستتعلم: كيفية البحث عن السجلات باستعمال توابع وشروط متعددة، وكيفية تحديد الترتيب، والتجميع، والخاصيات المعادة، والخاصيات الأخرى للسجلات التي عُثِر عليها، وكيفية استعمال التحميل الحثيث (eager loading) للتقليل من عدد استعلامات قاعدة البيانات الضرورية لجلب البيانات، وكيفية استعمال توابع البحث الديناميكية، وكيفية استعمال تسلسل التوابع (method chaining) لاستعمال توابع متعددة للسجل الفعال سويةً، وكيفية التحقق من تواجد سجلات محددة، وكيفية تنفيذ حسابات مختلفة على نماذج السجل الفعال، وكيفية تشغيل EXPLAIN على العلاقات.
يغطي هذا الدليل مختلف الطرائق المستعملة لجلب واستعادة البيانات من قاعدة البيانات باستعمال [[Rails/active record|Active Record]]. بعد قراءة هذا الدليل، ستتعلم: كيفية البحث عن السجلات باستعمال توابع وشروط متعددة، وكيفية تحديد الترتيب، والتجميع، والخاصيات المعادة، والخاصيات الأخرى للسجلات التي عُثِر عليها، وكيفية استعمال التحميل الحثيث (eager loading) للتقليل من عدد استعلامات قاعدة البيانات الضرورية لجلب البيانات، وكيفية استعمال توابع البحث الديناميكية، وكيفية استعمال تسلسل التوابع (method chaining) لاستعمال توابع متعددة [[Rails/active record|Active Record]] سويةً، وكيفية التحقق من تواجد سجلات محددة، وكيفية تنفيذ حسابات مختلفة على نماذج [[Rails/active record|Active Record]]، وكيفية تشغيل EXPLAIN على العلاقات.


=== [[Rails/active model basics|أساسيات النموذج الفعال]] ===
=== [[Rails/active model basics|أساسيات Active Model]] ===
يجب أن يوفر لك هذا الدليل كل ما تحتاج إليه للبدء في استخدام أصناف النموذج (model classes). يسمح النموذج الفعَّال (Active Model) لمساعدي الإجراء <code>Pack</code> بالتفاعل مع كائنات <nowiki/>[[Ruby|روبي]]<nowiki/>الصرفة. يساعد النموذج الفعَّال أيضًا على إنشاء <nowiki/>[[Rails/active record basics#.D8.A7.D9.84.D8.B3.D8.AC.D9.84 .D8.A7.D9.84.D9.81.D8.B9.D8.A7.D9.84 .D9.83.D8.A5.D8.B7.D8.A7.D8.B1 .D8.B9.D9.85.D9.84 ORM|قواعد بيانات ORM]] مخصصة للاستخدام خارج إطار ريلز.
يجب أن يوفر لك هذا الدليل كل ما تحتاج إليه للبدء في استخدام أصناف Model. يسمح [[Rails/active model|Active Model]] لمساعدي [[Rails/action pack|Action Pack]] بالتفاعل مع كائنات <nowiki/>[[Ruby|روبي]]<nowiki/>الصرفة. يساعد [[Rails/active model|Active Model]] أيضًا على إنشاء <nowiki/>[[Rails/active record basics#.D8.A7.D9.84.D8.B3.D8.AC.D9.84 .D8.A7.D9.84.D9.81.D8.B9.D8.A7.D9.84 .D9.83.D8.A5.D8.B7.D8.A7.D8.B1 .D8.B9.D9.85.D9.84 ORM|قواعد بيانات ORM]] مخصصة للاستخدام خارج إطار ريلز.


بعد قراءة هذا الدليل، ستتعلم: كيف يعمل نموذج <nowiki/>[[Rails/active record basics|السجل الفعَّال]]، وكيف تعمل <nowiki/>[[Rails/active record callbacks|ردود النداء]] و<nowiki/>[[Rails/active record validations|عمليات التحقق]]، وكيف تعمل المُسَلسِلات (serializers)، وكيف يتكامل النموذج الفعال مع <nowiki/>[[Rails/i18n|إطار تدويل]] ريلز (i18n).
بعد قراءة هذا الدليل، ستتعلم: كيف يعمل نموذج <nowiki/>[[Rails/active record basics|Active Record]]<nowiki/>، وكيف تعمل <nowiki/>[[Rails/active record callbacks|ردود النداء]] و<nowiki/>[[Rails/active record validations|عمليات التحقق]]، وكيف تعمل المُسَلسِلات (serializers)، وكيف يتكامل [[Rails/active model|Active Model]] مع <nowiki/>[[Rails/i18n|إطار تدويل]] ريلز (i18n).


== واجهات العرض ==
== واجهات العرض ==


=== [[Rails/action view overview|نظرة عامة على وحدة العرض]] ===
=== [[Rails/action view overview|نظرة عامة على وحدة العرض]] ===
بعد قراءة هذا الدليل، ستتعلم: ما هو إجراء العرض (Action View) وكيفية استخدامه مع ريلز، وأفضل طريقة لاستخدام القوالب والجزئيات (partials) والتخطيطات، وما الذي يقدمه المساعدون عن طريق إجراء العرض، وكيفية استخدام العروض المحلية.
بعد قراءة هذا الدليل، ستتعلم: ما هو [[Rails/action view|Action View]] وكيفية استخدامه مع ريلز، وأفضل طريقة لاستخدام القوالب والجزئيات (partials) والتخطيطات، وما الذي يقدمه المساعدون عن طريق [[Rails/action view|Action View]]، وكيفية استخدام العروض المحلية.


=== [[Rails/layouts and rendering|تخطيط الصفحات والتصيير]] ===
=== [[Rails/layouts and rendering|تخطيط الصفحات والتصيير]] ===
سطر 45: سطر 80:


=== [[Rails/action controller overview|نظرة خاطفة على وحدة التحكم]] ===
=== [[Rails/action controller overview|نظرة خاطفة على وحدة التحكم]] ===
ستتعرف في هذا الدليل على كيفية عمل وحدات التحكم (Controller) وكيفية ملاءمتها مع دورة الطلب (request cycle) في التطبيق الخاص بك. بعد قراءة هذا الدليل، ستتعلم: كيفية اتباع تدفق الطلب من خلال وحدة تحكم، وكيفية تقييد المعاملات التي مُرّرت إلى وحدة التحكم الخاصة بك، وكيف ولماذا تخزَّن البيانات في الجلسة (session) أو ملفات تعريف الارتباط (cookies)، وكيفية العمل مع المرشحات (filters) لتنفيذ التعليمات البرمجية أثناء معالجة الطلب، وكيفية استخدام استيثاق HTTP المضمن في وحدة التحكم، وكيفية تدفق البيانات مباشرة إلى متصفح المستخدم، وكيفية ترشيح المعاملات الحساسة بحيث لا تظهر في سجل التطبيق، وكيفية التعامل مع الاستثناءات التي قد تنشأ أثناء معالجة الطلب.
ستتعرف في هذا الدليل على كيفية عمل Action Controller (وحدات التحكم) وكيفية ملاءمتها مع دورة الطلب (request cycle) في التطبيق الخاص بك. بعد قراءة هذا الدليل، ستتعلم: كيفية اتباع تدفق الطلب من خلال وحدة تحكم، وكيفية تقييد المعاملات التي مُرّرت إلى وحدة التحكم الخاصة بك، وكيف ولماذا تخزَّن البيانات في الجلسة (session) أو ملفات تعريف الارتباط (cookies)، وكيفية العمل مع المرشحات (filters) لتنفيذ التعليمات البرمجية أثناء معالجة الطلب، وكيفية استخدام استيثاق HTTP المضمن في وحدة التحكم، وكيفية تدفق البيانات مباشرة إلى متصفح المستخدم، وكيفية ترشيح المعاملات الحساسة بحيث لا تظهر في سجل التطبيق، وكيفية التعامل مع الاستثناءات التي قد تنشأ أثناء معالجة الطلب.


=== [[Rails/routing|التوجيه من الخارج والداخل]] ===
=== [[Rails/routing|التوجيه من الخارج والداخل]] ===
يغطي هذا الدليل الميزات التي يواجهها المستخدم في عمليات التوجيه في ريلز. بعد قراءة هذا الدليل، ستتعلم: كيفية تفسير الشيفرة في config/routes.rb، وكيفية بناء المسارات الخاصة بك باستخدام إما أسلوب الحيلة (resourceful style) المفضل أو طريقة المطابقة (match method)، وكيفية الإعلان عن معاملات المسار الموجه، والتي تمرر إلى إجراءات وحدة التحكم (controller actions)، وكيفية إنشاء المسارات وعناوين URL تلقائيًا باستخدام مساعدي المسار الموجه، والتقنيات المتقدمة مثل إنشاء قيود وتثبيت نقاط نهاية Rack.
يغطي هذا الدليل الميزات التي يواجهها المستخدم في عمليات التوجيه في ريلز. بعد قراءة هذا الدليل، ستتعلم: كيفية تفسير الشيفرة في config/routes.rb، وكيفية بناء المسارات الخاصة بك باستخدام إما أسلوب الحيلة (resourceful style) المفضل أو طريقة المطابقة (match method)، وكيفية الإعلان عن معاملات المسار الموجه، والتي تمرر إلى Action Controller، وكيفية إنشاء المسارات وعناوين URL تلقائيًا باستخدام مساعدي المسار الموجه، والتقنيات المتقدمة مثل إنشاء قيود وتثبيت نقاط نهاية Rack.


== التعمق أكثر ==
== التعمق أكثر ==


=== [[Rails/active support core extensions|ملحقات الدعم الفعال الأساسية]] ===
=== [[Rails/active support core extensions|ملحقات Active Support الأساسية]] ===
الدعم الفعَّال (Active Support) هو مكوّن ريلز المسؤول عن توفير ملحقات لغة <nowiki/>[[Ruby|روبي]] والأدوات المساعدة والأشياء الأخرى المعترضة.
[[Rails/active support|Active Support]] هو مكوّن ريلز المسؤول عن توفير ملحقات لغة <nowiki/>[[Ruby|روبي]] والأدوات المساعدة والأشياء الأخرى المعترضة.


كما يوفر حدًا أدنى من المعرفة الواسعة على مستوى اللغة يستهدف كل من تطوير تطبيقات ريلز، وتطوير ريلز نفسه. بعد قراءة هذا الدليل، ستتعلم: ماهيّة الملحقات الأساسية، وكيفية تحميل كل الملحقات، وكيفية انتقاء الملحقات التي تريدها فقط، وماهيّ الملحقات التي يوفرها الدعم الفعَّال.
كما يوفر حدًا أدنى من المعرفة الواسعة على مستوى اللغة يستهدف كل من تطوير تطبيقات ريلز، وتطوير ريلز نفسه. بعد قراءة هذا الدليل، ستتعلم: ماهيّة الملحقات الأساسية، وكيفية تحميل كل الملحقات، وكيفية انتقاء الملحقات التي تريدها فقط، وماهيّ الملحقات التي يوفرها [[Rails/active support|Active Support]].


=== [[Rails/i18n|الواجهة البرمجية للتدويل (I18n)]] ===
=== [[Rails/i18n|الواجهة البرمجية للتدويل (I18n)]] ===
سطر 62: سطر 97:
عادةً ما تعني عمليّة "التدويل" تجريد كل السلاسل النصية والبتات الخاصة الأخرى ذات العلاقة باللغة (مثل تنسيقات التاريخ أو العملة) من تطبيقك. تعني عملية "التوطين" توفير الترجمات والصيغ المحلية لهذه البتات. سيرشدك هذا الدليل إلى استعمال الواجهة البرمجية I18n كما سيعلمك كيفيّة تدويل تطبيق ريلز من البداية.
عادةً ما تعني عمليّة "التدويل" تجريد كل السلاسل النصية والبتات الخاصة الأخرى ذات العلاقة باللغة (مثل تنسيقات التاريخ أو العملة) من تطبيقك. تعني عملية "التوطين" توفير الترجمات والصيغ المحلية لهذه البتات. سيرشدك هذا الدليل إلى استعمال الواجهة البرمجية I18n كما سيعلمك كيفيّة تدويل تطبيق ريلز من البداية.


=== [[Rails/action mailer basics|أساسيات إجراء المراسلة]] ===
=== [[Rails/action mailer basics|أساسيات Action Mailer]] ===
يوفّر لك هذا الدليل كل ما تحتاجه للبدء في إرسال واستقبال رسائل البريد الإلكتروني من وإلى تطبيقك، والعديد من عمليّات إجراء المراسلة (Action Mailer) الداخليّة. كما يغطي كيفية اختبار مُرسلي بريدك (mailers).
يوفّر لك هذا الدليل كل ما تحتاجه للبدء في إرسال واستقبال رسائل البريد الإلكتروني من وإلى تطبيقك، والعديد من عمليّات [[Rails/action mailer|Action Mailer]] الداخليّة. كما يغطي كيفية اختبار مُرسلي بريدك (mailers).


ستتعلم بعد قراءة هذا الدليل: كيفيّة إرسال واستقبال البريد الإلكتروني داخل تطبيق ريلز، وكيفيّة إنشاء وتعديل صنف إجراء المراسلة والعرض المرتبط به، وكيفيّة إعداد إجراء المراسلة لبيئتك، وكيفيّة اختبار أصنافك لإجراء المراسلة.
ستتعلم بعد قراءة هذا الدليل: كيفيّة إرسال واستقبال البريد الإلكتروني داخل تطبيق ريلز، وكيفيّة إنشاء وتعديل صنف [[Rails/action mailer|Action Mailer]] والعرض المرتبط به، وكيفيّة إعداد [[Rails/action mailer|Action Mailer]] لبيئتك، وكيفيّة اختبار أصنافك لـ [[Rails/action mailer|Action Mailer]].


=== [[Rails/active job basics|أساسيات الوظيفة الفعالة]] ===
=== [[Rails/active job basics|أساسيات Active Job]] ===
يوفّر لك هذا الدليل كل ما تحتاج إليه للبدء في إنشاء وظائف خلفية (background jobs) وإدراجها بطوابير الانتظار وتنفيذها. بعد قراءة هذا الدليل، ستتعلم: كيفيّة إنشاء وظائف، وكيفيّة إدراج الوظائف بالطوابير، وكيفيّة تشغيل الوظائف في الخلفية، وكيفيّة إرسال رسائل البريد الإلكتروني من التطبيق الخاص بك بشكل غير متزامن.
يوفّر لك هذا الدليل كل ما تحتاج إليه للبدء في إنشاء وظائف خلفية (background jobs) وإدراجها بطوابير الانتظار وتنفيذها. بعد قراءة هذا الدليل، ستتعلم: كيفيّة إنشاء وظائف، وكيفيّة إدراج الوظائف بالطوابير، وكيفيّة تشغيل الوظائف في الخلفية، وكيفيّة إرسال رسائل البريد الإلكتروني من التطبيق الخاص بك بشكل غير متزامن.


=== [[Rails/active storage overview|نظرة عامة على التخزين الفعال]] ===
=== [[Rails/active storage overview|نظرة عامة على Active Storage]] ===
يغطّي هذا الدليل كيفيّة إرفاق ملفات بنماذج <nowiki/>[[Rails/active record basics|السّجلّ الفعّال]]. ستتعلم بعد قراءة هذا الدليل: كيفية إرفاق ملف أو عدّة ملفّات بسجلّ (record)، وكيفيّة حذف ملف مُرفق، وكيفيّة الربط بملف مُرفق، وكيفيّة استخدام المتغيّرات (variants) لتحويل الصور، وكيفيّة إنشاء تمثيل صُوَري (image representation) لملف غير صُوَري، مثل ملف PDF أو فيديو، وكيفيّة إرسال تحميلات الملفّات مباشرةً من المتصفّحات إلى خدمة تخزين، دون المرور على خوادم تطبيقك، وكيفيّة تنظيف الملفّات المخزّنة أثناء الاختبار، وكيفيّة تعريف استخدام (implement) الدعم لخدمات تخزين إضافيّة.
يغطّي هذا الدليل كيفيّة إرفاق ملفات بنماذج [[Rails/active record basics|Active Record]]<nowiki/>. ستتعلم بعد قراءة هذا الدليل: كيفية إرفاق ملف أو عدّة ملفّات بسجلّ (record)، وكيفيّة حذف ملف مُرفق، وكيفيّة الربط بملف مُرفق، وكيفيّة استخدام المتغيّرات (variants) لتحويل الصور، وكيفيّة إنشاء تمثيل صُوَري (image representation) لملف غير صُوَري، مثل ملف PDF أو فيديو، وكيفيّة إرسال تحميلات الملفّات مباشرةً من المتصفّحات إلى خدمة تخزين، دون المرور على خوادم تطبيقك، وكيفيّة تنظيف الملفّات المخزّنة أثناء الاختبار، وكيفيّة تعريف استخدام (implement) الدعم لخدمات تخزين إضافيّة.


=== [[Rails/testing|اختبار تطبيقات ريلز]] ===
=== [[Rails/testing|اختبار تطبيقات ريلز]] ===
سطر 107: سطر 142:
هذا الدليل عبارة عن مدخل يطلعك على كيفية تسريع تطبيق ريلز عبر التخزين المؤقت. بعد قراءة هذا الدليل، ستتعلم: أسلوب تخزين الأجزاء (fragment caching) وأسلوب تخزين الدمية الروسية (Russian doll caching)، وكيفية إدارة اعتماديات التخزين المؤقت، ومخازن ذاكرة التخزين المؤقت البديلة، ودعم GET الشرطي.
هذا الدليل عبارة عن مدخل يطلعك على كيفية تسريع تطبيق ريلز عبر التخزين المؤقت. بعد قراءة هذا الدليل، ستتعلم: أسلوب تخزين الأجزاء (fragment caching) وأسلوب تخزين الدمية الروسية (Russian doll caching)، وكيفية إدارة اعتماديات التخزين المؤقت، ومخازن ذاكرة التخزين المؤقت البديلة، ودعم GET الشرطي.


=== [[Rails/active support instrumentation|أدوات الدعم الفعَّال]] ===
=== [[Rails/active support instrumentation|أدوات Active Support]] ===
الدعم الفعال هو جزء من نواة ريلز التي توفر ملحقات للغة روبي والأدوات المساعدة وغيرها من الأشياء. أحد الأشياء التي يتضمنها هو واجهة برمجية لأدوات قياس (instrumentation API) يمكن استخدامها داخل تطبيق لقياس إجراءات معينة تحدث داخل شيفرة روبي، مثل تلك الموجودة داخل تطبيق ريلز أو إطار العمل نفسه، إذ لا يقتصر ذلك على ريلز فقط. يمكن استخدامها بشكل مستقل في شيفرات روبي البرمجية الأخرى إذا كان ذلك مطلوبًا.
[[Rails/active support|Active Support]] هو جزء من نواة ريلز التي توفر ملحقات للغة روبي والأدوات المساعدة وغيرها من الأشياء. أحد الأشياء التي يتضمنها هو واجهة برمجية لأدوات قياس (instrumentation API) يمكن استخدامها داخل تطبيق لقياس إجراءات معينة تحدث داخل شيفرة روبي، مثل تلك الموجودة داخل تطبيق ريلز أو إطار العمل نفسه، إذ لا يقتصر ذلك على ريلز فقط. يمكن استخدامها بشكل مستقل في شيفرات روبي البرمجية الأخرى إذا كان ذلك مطلوبًا.


في هذا الدليل، ستتعلم كيفية استخدام الواجهة البرمجية لأدوات القياس (instrumentation API) داخل الدعم الفعال لقياس الأحداث داخل ريلز وغيرها من شيفرات روبي.
في هذا الدليل، ستتعلم كيفية استخدام الواجهة البرمجية لأدوات القياس (instrumentation API) داخل [[Rails/active support|Active Support]] لقياس الأحداث داخل ريلز وغيرها من شيفرات روبي.


=== [[Rails/api app|استعمال ريلز لإنشاء تطبيقات ذات واجهة برمجية فقط]] ===
=== [[Rails/api app|استعمال ريلز لإنشاء تطبيقات ذات واجهة برمجية فقط]] ===
في هذا الدليل ستتعلم: ما تقدمه ريلز للتطبيقات ذات الواجهة البرمجية فقط، كيفية ضبط ريلز للبدء دون أي ميزات للمتصفح، وكيفية تحديد البرامج الوسيطة (middleware) التي تريد تضمينها، وكيفية تحديد الوحدات لاستخدامها في وحدة التحكم الخاصة بك.
في هذا الدليل ستتعلم: ما تقدمه ريلز للتطبيقات ذات الواجهة البرمجية فقط، كيفية ضبط ريلز للبدء دون أي ميزات للمتصفح، وكيفية تحديد البرامج الوسيطة (middleware) التي تريد تضمينها، وكيفية تحديد الوحدات لاستخدامها في وحدة التحكم الخاصة بك.


=== [[Rails/action cable overview|نظرة عامة على إجراء الربط]] ===
=== [[Rails/action cable overview|نظرة عامة على Action Cable]] ===
ستتعرف في هذا الدليل على كيفية عمل إجراء الربط (Action Cable) وكيفية استخدام WebSockets لدمج ميزات الوقت الفعلي في تطبيق ريلز.
ستتعرف في هذا الدليل على كيفية عمل [[Rails/action cable|Action Cable]] وكيفية استخدام WebSockets لدمج ميزات الوقت الفعلي في تطبيق ريلز.


بعد قراءة هذا الدليل، ستتلعم: ماهية إجراء الربط وكيفية دمج الواجهة الخلفية والأمامية الخاصة به، وكيفية إعداد إجراء الربط (Action Cable)، وكيفية إعداد القنوات، والنشر وإعداد المعمارية لتشغيل إجراء الربط.
بعد قراءة هذا الدليل، ستتلعم: ماهية [[Rails/action cable|Action Cable]] وكيفية دمج الواجهة الخلفية والأمامية الخاصة به، وكيفية إعداد [[Rails/action cable|Action Cable]]، وكيفية إعداد القنوات، والنشر وإعداد المعمارية لتشغيل [[Rails/action cable|Action Cable]].


== توسيع ريلز ==
== توسيع ريلز ==
سطر 126: سطر 161:


=== [[Rails/rails on rack|ريلز مع Rack]] ===
=== [[Rails/rails on rack|ريلز مع Rack]] ===
يغطي هذا الدليل دمج ريلز مع Rack والتفاعل مع مكونات Rack الأخرى. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام برمجيات Rack الوسيطة في تطبيقات ريلز الخاصة بك، وحزمة البرمجيات الوسيطة الداخلية للإجراء Pack، وكيفية تعريف مكدس برنامج وسيط مخصص (custom Middleware stack).
يغطي هذا الدليل دمج ريلز مع Rack والتفاعل مع مكونات Rack الأخرى. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام برمجيات Rack الوسيطة في تطبيقات ريلز الخاصة بك، وحزمة البرمجيات الوسيطة الداخلية [[Rails/action pack|Action Pack]]، وكيفية تعريف مكدس برنامج وسيط مخصص (custom Middleware stack).


=== [[Rails/generators|إنشاء وتخصيص مولدات وقوالب ريلز]] ===
=== [[Rails/generators|إنشاء وتخصيص مولدات وقوالب ريلز]] ===
سطر 134: سطر 169:


=== [[Rails/engines|البدء مع المحركات]] ===
=== [[Rails/engines|البدء مع المحركات]] ===
ستتعرف في هذا الدليل على المحركات وكيف يمكن استخدامها لتوفير وظائف إضافية لتطبيقاتها المضيفة من خلال واجهة نظيفة وسهلة الاستخدام للغاية.
ستتعرف في هذا الدليل على المحركات (engines) وكيف يمكن استخدامها لتوفير وظائف إضافية لتطبيقاتها المضيفة من خلال واجهة واضحة وسهلة الاستخدام للغاية.


بعد قراءة هذا الدليل، ستتعلم: ما الذي يجعله محركًا، كيف تولد المحرك، وكيفية بناء ميزات للمحرك، وكيفية ربط المحرك في التطبيق، وكيفية تجاوز وظيفة المحرك في التطبيق، وتجنب تحميل أطر Rails مع تحميل وإعداد تكوين الخطاف.
بعد قراءة هذا الدليل، ستتعلم: مما يتكون المحرك، وكيف وُلِّد المحرك، وكيفية بناء ميزات للمحرك، وكيفية ربط المحرك في التطبيق، وكيفية استبدال وظيفة المحرك في التطبيق، وتجنب تحميل أطر ريلز مع خطافات التحميل (Load Hooks) وخطافات الضبط (Configuration Hooks).


=== [[Rails/threading and code execution|الخيوط وتنفيذ الشيفرة في ريلز]] ===
=== [[Rails/threading and code execution|الخيوط وتنفيذ الشيفرة في ريلز]] ===
بعد قراءة هذا الدليل، ستتلعم: ما هي شيفرة ريلز التي ستُنفَّذ تلقائيا في وقت واحد، وكيفية دمج التزامن اليدوي مع أجزاء ريلز الداخلية، وكيفية تغليف كل شيفرة التطبيق، وكيف التأثير على عملية إعادة تحميل التطبيق.
بعد قراءة هذا الدليل، ستتلعم: ما هي شيفرة ريلز التي ستُنفَّذ تلقائيا في وقت واحد، وكيفية دمج التزامن اليدوي مع أجزاء ريلز الداخلية، وكيفية تغليف كل شيفرة التطبيق، وكيف التأثير على عملية إعادة تحميل التطبيق.

المراجعة الحالية بتاريخ 06:52، 25 مارس 2019

ابدأ من هنا

البدء مع ريلز

يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات، وما هو التخطيط العام لتطبيق ريلز، والمبادئ الأساسية للنمط 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).

الخيوط وتنفيذ الشيفرة في ريلز

بعد قراءة هذا الدليل، ستتلعم: ما هي شيفرة ريلز التي ستُنفَّذ تلقائيا في وقت واحد، وكيفية دمج التزامن اليدوي مع أجزاء ريلز الداخلية، وكيفية تغليف كل شيفرة التطبيق، وكيف التأثير على عملية إعادة تحميل التطبيق.