الفرق بين المراجعتين لصفحة: «Rails/Topics»
جميل-بيلوني (نقاش | مساهمات) إضافة محتوى الأقسام |
جميل-بيلوني (نقاش | مساهمات) ط تصحيح مصطلحات |
||
سطر 6: | سطر 6: | ||
== النماذج == | == النماذج == | ||
=== [[Rails/active record basics|أساسيات | === [[Rails/active record basics|أساسيات Active Record]] === | ||
هذا الدليل هو مدخل إلى | هذا الدليل هو مدخل إلى Active Record. بعد قراءة هذا الدليل، ستتعرف على: ما هي تقنية ORM و Active Record وكيفية استعمالهما في ريلز، وكيف ينسجم Active Record مع النموذج MVC، وكيفية استعمال نماذج Active Record لمعالجة وتعديل البيانات المخزَّنة في قاعدة بيانات عِلاقيِّة، واصطلاحات تسمية مخطَّط Active Record، ومفهوم تهجيرات، وتحققات، وردود نداء قاعدة البيانات. | ||
=== [[Rails/active record migrations|تهجيرات | === [[Rails/active record migrations|تهجيرات Active Record]] === | ||
التهجيرات (Migrations) هي ميزة من <nowiki/>[[Rails/active record basics| | التهجيرات (Migrations) هي ميزة من <nowiki/>[[Rails/active record basics|Active Record]]<nowiki/> التي تمكّنك من تحديث مخطط قاعدة البيانات على مر الوقت. بدلًا من كتابة تعديلات قاعدة البيانات باستخدام SQL، تمكّنك التهجيرات من كتابة تعليمات DSL باستخدام <nowiki/>[[Ruby|روبي]] لتحديث جداولك. بعد قراءة هذا الدليل، ستتعرَّف على: المولِّدات التي تستطيع استعمالها لإنشاء التهجيرات، والتوابع التي يوفرها Active Record لتعديل قاعدة البيانات، والمهام bin/rails التي تعدِّل وتتحكم بالتهجيرات والمخطط (schema) الخاص بك، والعلاقة بين التهجيرات والملف schema.rb. | ||
=== [[Rails/active record validations|عمليات التحقق من | === [[Rails/active record validations|عمليات التحقق من Active Record]] === | ||
يعلِّمك هذا الدليل كيفية التحقق من حالة الكائنات قبل إرسالها إلى قاعدة البيانات باستعمال ميزة التحققات من الصحة (validations) التي يوفرها | يعلِّمك هذا الدليل كيفية التحقق من حالة الكائنات قبل إرسالها إلى قاعدة البيانات باستعمال ميزة التحققات من الصحة (validations) التي يوفرها Active Record. بعد قراءة هذا الدليل، ستتعرَّف على: كيفية استعمال مساعدي التحقق من الصحة Active Record المدمجين، وكيفية إنشاء توابع مخصصة للتحقق من الصحة، وكيفية العمل مع رسالة الخطأ المولدة عبر عملية التحقق. | ||
=== [[Rails/active record callbacks|ردود نداء | === [[Rails/active record callbacks|ردود نداء Active Record]] === | ||
ستتعلم في هذا الدليل كل ما يتعلَّق بدورة حياة كائنات | ستتعلم في هذا الدليل كل ما يتعلَّق بدورة حياة كائنات 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/>. بعد قراءة هذا الدليل، ستتعلم: كيفية التصريح عن الارتباطات بين نماذج Active Record، والأنواع المختلفة للارتباطات في Active Record، وكيفية استعمال التوابع المضافة إلى نماذجك عبر إنشاء الارتباطات. | ||
=== [[Rails/active record querying|واجهة استعلامات | === [[Rails/active record querying|واجهة استعلامات Active Record]] === | ||
يغطي هذا الدليل مختلف الطرائق المستعملة لجلب واستعادة البيانات من قاعدة البيانات باستعمال | يغطي هذا الدليل مختلف الطرائق المستعملة لجلب واستعادة البيانات من قاعدة البيانات باستعمال Active Record. بعد قراءة هذا الدليل، ستتعلم: كيفية البحث عن السجلات باستعمال توابع وشروط متعددة، وكيفية تحديد الترتيب، والتجميع، والخاصيات المعادة، والخاصيات الأخرى للسجلات التي عُثِر عليها، وكيفية استعمال التحميل الحثيث (eager loading) للتقليل من عدد استعلامات قاعدة البيانات الضرورية لجلب البيانات، وكيفية استعمال توابع البحث الديناميكية، وكيفية استعمال تسلسل التوابع (method chaining) لاستعمال توابع متعددة Active Record سويةً، وكيفية التحقق من تواجد سجلات محددة، وكيفية تنفيذ حسابات مختلفة على نماذج Active Record، وكيفية تشغيل EXPLAIN على العلاقات. | ||
=== [[Rails/active model basics|أساسيات | === [[Rails/active model basics|أساسيات Active Model]] === | ||
يجب أن يوفر لك هذا الدليل كل ما تحتاج إليه للبدء في استخدام أصناف | يجب أن يوفر لك هذا الدليل كل ما تحتاج إليه للبدء في استخدام أصناف Model. يسمح Active Model لمساعدي Action Pack بالتفاعل مع كائنات <nowiki/>[[Ruby|روبي]]<nowiki/>الصرفة. يساعد 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 basics|Active Record]]<nowiki/>، وكيف تعمل <nowiki/>[[Rails/active record callbacks|ردود النداء]] و<nowiki/>[[Rails/active record validations|عمليات التحقق]]، وكيف تعمل المُسَلسِلات (serializers)، وكيف يتكامل Active Model مع <nowiki/>[[Rails/i18n|إطار تدويل]] ريلز (i18n). | ||
== واجهات العرض == | == واجهات العرض == | ||
=== [[Rails/action view overview|نظرة عامة على وحدة العرض]] === | === [[Rails/action view overview|نظرة عامة على وحدة العرض]] === | ||
بعد قراءة هذا الدليل، ستتعلم: ما هو | بعد قراءة هذا الدليل، ستتعلم: ما هو Action View وكيفية استخدامه مع ريلز، وأفضل طريقة لاستخدام القوالب والجزئيات (partials) والتخطيطات، وما الذي يقدمه المساعدون عن طريق Action View، وكيفية استخدام العروض المحلية. | ||
=== [[Rails/layouts and rendering|تخطيط الصفحات والتصيير]] === | === [[Rails/layouts and rendering|تخطيط الصفحات والتصيير]] === | ||
سطر 45: | سطر 45: | ||
=== [[Rails/action controller overview|نظرة خاطفة على وحدة التحكم]] === | === [[Rails/action controller overview|نظرة خاطفة على وحدة التحكم]] === | ||
ستتعرف في هذا الدليل على كيفية عمل وحدات التحكم | ستتعرف في هذا الدليل على كيفية عمل Action Controller (وحدات التحكم) وكيفية ملاءمتها مع دورة الطلب (request cycle) في التطبيق الخاص بك. بعد قراءة هذا الدليل، ستتعلم: كيفية اتباع تدفق الطلب من خلال وحدة تحكم، وكيفية تقييد المعاملات التي مُرّرت إلى وحدة التحكم الخاصة بك، وكيف ولماذا تخزَّن البيانات في الجلسة (session) أو ملفات تعريف الارتباط (cookies)، وكيفية العمل مع المرشحات (filters) لتنفيذ التعليمات البرمجية أثناء معالجة الطلب، وكيفية استخدام استيثاق HTTP المضمن في وحدة التحكم، وكيفية تدفق البيانات مباشرة إلى متصفح المستخدم، وكيفية ترشيح المعاملات الحساسة بحيث لا تظهر في سجل التطبيق، وكيفية التعامل مع الاستثناءات التي قد تنشأ أثناء معالجة الطلب. | ||
=== [[Rails/routing|التوجيه من الخارج والداخل]] === | === [[Rails/routing|التوجيه من الخارج والداخل]] === | ||
يغطي هذا الدليل الميزات التي يواجهها المستخدم في عمليات التوجيه في ريلز. بعد قراءة هذا الدليل، ستتعلم: كيفية تفسير الشيفرة في config/routes.rb، وكيفية بناء المسارات الخاصة بك باستخدام إما أسلوب الحيلة (resourceful style) المفضل أو طريقة المطابقة (match method)، وكيفية الإعلان عن معاملات المسار الموجه، والتي تمرر إلى | يغطي هذا الدليل الميزات التي يواجهها المستخدم في عمليات التوجيه في ريلز. بعد قراءة هذا الدليل، ستتعلم: كيفية تفسير الشيفرة في 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|روبي]] والأدوات المساعدة والأشياء الأخرى المعترضة. | |||
كما يوفر حدًا أدنى من المعرفة الواسعة على مستوى اللغة يستهدف كل من تطوير تطبيقات ريلز، وتطوير ريلز نفسه. بعد قراءة هذا الدليل، ستتعلم: ماهيّة الملحقات الأساسية، وكيفية تحميل كل الملحقات، وكيفية انتقاء الملحقات التي تريدها فقط، وماهيّ الملحقات التي يوفرها | كما يوفر حدًا أدنى من المعرفة الواسعة على مستوى اللغة يستهدف كل من تطوير تطبيقات ريلز، وتطوير ريلز نفسه. بعد قراءة هذا الدليل، ستتعلم: ماهيّة الملحقات الأساسية، وكيفية تحميل كل الملحقات، وكيفية انتقاء الملحقات التي تريدها فقط، وماهيّ الملحقات التي يوفرها Active Support. | ||
=== [[Rails/i18n|الواجهة البرمجية للتدويل (I18n)]] === | === [[Rails/i18n|الواجهة البرمجية للتدويل (I18n)]] === | ||
سطر 62: | سطر 62: | ||
عادةً ما تعني عمليّة "التدويل" تجريد كل السلاسل النصية والبتات الخاصة الأخرى ذات العلاقة باللغة (مثل تنسيقات التاريخ أو العملة) من تطبيقك. تعني عملية "التوطين" توفير الترجمات والصيغ المحلية لهذه البتات. سيرشدك هذا الدليل إلى استعمال الواجهة البرمجية I18n كما سيعلمك كيفيّة تدويل تطبيق ريلز من البداية. | عادةً ما تعني عمليّة "التدويل" تجريد كل السلاسل النصية والبتات الخاصة الأخرى ذات العلاقة باللغة (مثل تنسيقات التاريخ أو العملة) من تطبيقك. تعني عملية "التوطين" توفير الترجمات والصيغ المحلية لهذه البتات. سيرشدك هذا الدليل إلى استعمال الواجهة البرمجية I18n كما سيعلمك كيفيّة تدويل تطبيق ريلز من البداية. | ||
=== [[Rails/action mailer basics|أساسيات | === [[Rails/action mailer basics|أساسيات Action Mailer]] === | ||
يوفّر لك هذا الدليل كل ما تحتاجه للبدء في إرسال واستقبال رسائل البريد الإلكتروني من وإلى تطبيقك، والعديد من عمليّات | يوفّر لك هذا الدليل كل ما تحتاجه للبدء في إرسال واستقبال رسائل البريد الإلكتروني من وإلى تطبيقك، والعديد من عمليّات Action Mailer الداخليّة. كما يغطي كيفية اختبار مُرسلي بريدك (mailers). | ||
ستتعلم بعد قراءة هذا الدليل: كيفيّة إرسال واستقبال البريد الإلكتروني داخل تطبيق ريلز، وكيفيّة إنشاء وتعديل صنف | ستتعلم بعد قراءة هذا الدليل: كيفيّة إرسال واستقبال البريد الإلكتروني داخل تطبيق ريلز، وكيفيّة إنشاء وتعديل صنف Action Mailer والعرض المرتبط به، وكيفيّة إعداد 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) الدعم لخدمات تخزين إضافيّة. | يغطّي هذا الدليل كيفيّة إرفاق ملفات بنماذج <nowiki/>[[Rails/active record basics|السّجلّ الفعّال]]. ستتعلم بعد قراءة هذا الدليل: كيفية إرفاق ملف أو عدّة ملفّات بسجلّ (record)، وكيفيّة حذف ملف مُرفق، وكيفيّة الربط بملف مُرفق، وكيفيّة استخدام المتغيّرات (variants) لتحويل الصور، وكيفيّة إنشاء تمثيل صُوَري (image representation) لملف غير صُوَري، مثل ملف PDF أو فيديو، وكيفيّة إرسال تحميلات الملفّات مباشرةً من المتصفّحات إلى خدمة تخزين، دون المرور على خوادم تطبيقك، وكيفيّة تنظيف الملفّات المخزّنة أثناء الاختبار، وكيفيّة تعريف استخدام (implement) الدعم لخدمات تخزين إضافيّة. | ||
سطر 107: | سطر 107: | ||
هذا الدليل عبارة عن مدخل يطلعك على كيفية تسريع تطبيق ريلز عبر التخزين المؤقت. بعد قراءة هذا الدليل، ستتعلم: أسلوب تخزين الأجزاء (fragment caching) وأسلوب تخزين الدمية الروسية (Russian doll caching)، وكيفية إدارة اعتماديات التخزين المؤقت، ومخازن ذاكرة التخزين المؤقت البديلة، ودعم GET الشرطي. | هذا الدليل عبارة عن مدخل يطلعك على كيفية تسريع تطبيق ريلز عبر التخزين المؤقت. بعد قراءة هذا الدليل، ستتعلم: أسلوب تخزين الأجزاء (fragment caching) وأسلوب تخزين الدمية الروسية (Russian doll caching)، وكيفية إدارة اعتماديات التخزين المؤقت، ومخازن ذاكرة التخزين المؤقت البديلة، ودعم GET الشرطي. | ||
=== [[Rails/active support instrumentation|أدوات | === [[Rails/active support instrumentation|أدوات Active Support]] === | ||
Active Support هو جزء من نواة ريلز التي توفر ملحقات للغة روبي والأدوات المساعدة وغيرها من الأشياء. أحد الأشياء التي يتضمنها هو واجهة برمجية لأدوات قياس (instrumentation API) يمكن استخدامها داخل تطبيق لقياس إجراءات معينة تحدث داخل شيفرة روبي، مثل تلك الموجودة داخل تطبيق ريلز أو إطار العمل نفسه، إذ لا يقتصر ذلك على ريلز فقط. يمكن استخدامها بشكل مستقل في شيفرات روبي البرمجية الأخرى إذا كان ذلك مطلوبًا. | |||
في هذا الدليل، ستتعلم كيفية استخدام الواجهة البرمجية لأدوات القياس (instrumentation API) داخل | في هذا الدليل، ستتعلم كيفية استخدام الواجهة البرمجية لأدوات القياس (instrumentation API) داخل Active Support لقياس الأحداث داخل ريلز وغيرها من شيفرات روبي. | ||
=== [[Rails/api app|استعمال ريلز لإنشاء تطبيقات ذات واجهة برمجية فقط]] === | === [[Rails/api app|استعمال ريلز لإنشاء تطبيقات ذات واجهة برمجية فقط]] === | ||
في هذا الدليل ستتعلم: ما تقدمه ريلز للتطبيقات ذات الواجهة البرمجية فقط، كيفية ضبط ريلز للبدء دون أي ميزات للمتصفح، وكيفية تحديد البرامج الوسيطة (middleware) التي تريد تضمينها، وكيفية تحديد الوحدات لاستخدامها في وحدة التحكم الخاصة بك. | في هذا الدليل ستتعلم: ما تقدمه ريلز للتطبيقات ذات الواجهة البرمجية فقط، كيفية ضبط ريلز للبدء دون أي ميزات للمتصفح، وكيفية تحديد البرامج الوسيطة (middleware) التي تريد تضمينها، وكيفية تحديد الوحدات لاستخدامها في وحدة التحكم الخاصة بك. | ||
=== [[Rails/action cable overview|نظرة عامة على | === [[Rails/action cable overview|نظرة عامة على Action Cable]] === | ||
ستتعرف في هذا الدليل على كيفية عمل | ستتعرف في هذا الدليل على كيفية عمل Action Cable وكيفية استخدام WebSockets لدمج ميزات الوقت الفعلي في تطبيق ريلز. | ||
بعد قراءة هذا الدليل، ستتلعم: ماهية | بعد قراءة هذا الدليل، ستتلعم: ماهية Action Cable وكيفية دمج الواجهة الخلفية والأمامية الخاصة به، وكيفية إعداد Action Cable، وكيفية إعداد القنوات، والنشر وإعداد المعمارية لتشغيل Action Cable. | ||
== توسيع ريلز == | == توسيع ريلز == | ||
سطر 126: | سطر 126: | ||
=== [[Rails/rails on rack|ريلز مع Rack]] === | === [[Rails/rails on rack|ريلز مع Rack]] === | ||
يغطي هذا الدليل دمج ريلز مع Rack والتفاعل مع مكونات Rack الأخرى. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام برمجيات Rack الوسيطة في تطبيقات ريلز الخاصة بك، وحزمة البرمجيات الوسيطة الداخلية | يغطي هذا الدليل دمج ريلز مع Rack والتفاعل مع مكونات Rack الأخرى. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام برمجيات Rack الوسيطة في تطبيقات ريلز الخاصة بك، وحزمة البرمجيات الوسيطة الداخلية Action Pack، وكيفية تعريف مكدس برنامج وسيط مخصص (custom Middleware stack). | ||
=== [[Rails/generators|إنشاء وتخصيص مولدات وقوالب ريلز]] === | === [[Rails/generators|إنشاء وتخصيص مولدات وقوالب ريلز]] === | ||
سطر 136: | سطر 136: | ||
ستتعرف في هذا الدليل على المحركات وكيف يمكن استخدامها لتوفير وظائف إضافية لتطبيقاتها المضيفة من خلال واجهة نظيفة وسهلة الاستخدام للغاية. | ستتعرف في هذا الدليل على المحركات وكيف يمكن استخدامها لتوفير وظائف إضافية لتطبيقاتها المضيفة من خلال واجهة نظيفة وسهلة الاستخدام للغاية. | ||
بعد قراءة هذا الدليل، ستتعلم: ما الذي يجعله محركًا، كيف تولد المحرك، وكيفية بناء ميزات للمحرك، وكيفية ربط المحرك في التطبيق، وكيفية تجاوز وظيفة المحرك في التطبيق، وتجنب تحميل أطر | بعد قراءة هذا الدليل، ستتعلم: ما الذي يجعله محركًا، كيف تولد المحرك، وكيفية بناء ميزات للمحرك، وكيفية ربط المحرك في التطبيق، وكيفية تجاوز وظيفة المحرك في التطبيق، وتجنب تحميل أطر ريلز مع تحميل وإعداد تكوين الخطاف. | ||
=== [[Rails/threading and code execution|الخيوط وتنفيذ الشيفرة في ريلز]] === | === [[Rails/threading and code execution|الخيوط وتنفيذ الشيفرة في ريلز]] === | ||
بعد قراءة هذا الدليل، ستتلعم: ما هي شيفرة ريلز التي ستُنفَّذ تلقائيا في وقت واحد، وكيفية دمج التزامن اليدوي مع أجزاء ريلز الداخلية، وكيفية تغليف كل شيفرة التطبيق، وكيف التأثير على عملية إعادة تحميل التطبيق. | بعد قراءة هذا الدليل، ستتلعم: ما هي شيفرة ريلز التي ستُنفَّذ تلقائيا في وقت واحد، وكيفية دمج التزامن اليدوي مع أجزاء ريلز الداخلية، وكيفية تغليف كل شيفرة التطبيق، وكيف التأثير على عملية إعادة تحميل التطبيق. |
مراجعة 18:13، 19 مارس 2019
ابدأ من هنا
البدء مع ريلز
يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات، وما هو التخطيط العام لتطبيق ريلز، والمبادئ الأساسية للنمط MVC والتصميم RESTful، وكيف تولد سريعًا أجزاء البداية لتطبيق ريلز.
النماذج
أساسيات 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
يغطّي هذا الدليل كيفيّة إرفاق ملفات بنماذج السّجلّ الفعّال. ستتعلم بعد قراءة هذا الدليل: كيفية إرفاق ملف أو عدّة ملفّات بسجلّ (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) لتجنب استبدال مجموعة ضخمة من المولدات، وكيفية إنشاء قالب التطبيق.
البدء مع المحركات
ستتعرف في هذا الدليل على المحركات وكيف يمكن استخدامها لتوفير وظائف إضافية لتطبيقاتها المضيفة من خلال واجهة نظيفة وسهلة الاستخدام للغاية.
بعد قراءة هذا الدليل، ستتعلم: ما الذي يجعله محركًا، كيف تولد المحرك، وكيفية بناء ميزات للمحرك، وكيفية ربط المحرك في التطبيق، وكيفية تجاوز وظيفة المحرك في التطبيق، وتجنب تحميل أطر ريلز مع تحميل وإعداد تكوين الخطاف.
الخيوط وتنفيذ الشيفرة في ريلز
بعد قراءة هذا الدليل، ستتلعم: ما هي شيفرة ريلز التي ستُنفَّذ تلقائيا في وقت واحد، وكيفية دمج التزامن اليدوي مع أجزاء ريلز الداخلية، وكيفية تغليف كل شيفرة التطبيق، وكيف التأثير على عملية إعادة تحميل التطبيق.