المسارات والموارد
التوجيه وفق REST
المسارات والموارد درس مجاني في Ruby Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ruby Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ruby Academy 4 دروس في المجموع.
ما هو التوجيه؟
يربط التوجيه طلب HTTP واردًا، يتكوّن من طريقة ومسار، بإجراء في وحدة تحكم يتولى معالجته. ويُعد ملف المسارات نقطة الدخول إلى تطبيق Rails.
- توجد المسارات في
config/routes.rb. - يربط كل مسار عنوان URL بـ
controller#action. - يطابق Rails المسارات من الأعلى إلى الأسفل.
مسار أساسي
يربط أبسط مسار مسارًا بإجراء باستخدام get. فعند إرسال طلب GET إلى /about، يستدعي Rails الإجراء about في PagesController.
Rails.application.routes.draw do
get "/about", to: "pages#about"
endأفعال HTTP
يحدّد كل مسار فعلًا يشير إلى الغرض من الطلب:
- يُستخدم
getلقراءة البيانات. - يُستخدم
postلإنشاء البيانات. - يُستخدم
patch/putلتحديث البيانات. - يُستخدم
deleteلإزالة البيانات.
يمكن للمسار نفسه، مع أفعال مختلفة، أن يرتبط بإجراءات مختلفة.
موارد RESTful
ينشئ مساعد resources المسارات السبعة القياسية لـ REST لنموذج في سطر واحد. وهذا هو جوهر التوجيه الاصطلاحي في Rails.
Rails.application.routes.draw do
resources :articles
endالإجراءات السبعة
ينشئ resources :articles مسارات من أجل:
indexلسرد العناصر، وshowلعرض عنصر واحد.newلعرض النموذج، وcreateللحفظ.editلعرض نموذج التعديل، وupdateللحفظ.destroyللحذف.
ويغطي ذلك دورة حياة المورد كاملة.
مساعدات المسار
تنشئ المسارات مساعدات مُسمّاة، لذلك لن تضطروا إلى كتابة عناوين URL مباشرة. يمنحكم resources :articles المساعدات articles_path وarticle_path(@article) وnew_article_path وedit_article_path(@article).
articles_path # => "/articles"
article_path(5) # => "/articles/5"
new_article_path # => "/articles/new"
edit_article_path(5) # => "/articles/5/edit"تحديد الإجراءات
استخدموا only أو except لإنشاء المسارات التي تحتاجون إليها فقط. ويحافظ ذلك على نطاق التوجيه صغيرًا ومقصودًا.
resources :articles, only: [:index, :show]
resources :comments, except: [:edit, :update]الموارد المتداخلة
ضمّنوا الموارد للتعبير عن الملكية في عنوان URL. فالتعليقات التابعة لمقالة تصبح /articles/1/comments. ويمرّر المسار المتداخل article_id إلى وحدة التحكم.
resources :articles do
resources :comments
end
# GET /articles/1/commentsالمسار الجذري
يحدّد root ما يتم تحميله عند /، أي الصفحة الرئيسية لتطبيقكم. ضعوه بالقرب من أعلى ملف المسارات لتسهيل القراءة.
Rails.application.routes.draw do
root "articles#index"
endفحص المسارات
شغّلوا rails routes لسرد كل مسار مع فعله ومساره ومساعده وcontroller#action الخاص به. وهذه أسرع طريقة لفهم توجيه تطبيق أو تصحيح مشكلاته.
مسارات العضو والمجموعة
أضيفوا إجراءات مخصصة إلى أحد الموارد:
- تعمل مسارات
memberعلى سجل واحد:/articles/1/publish. - تعمل مسارات
collectionعلى المجموعة:/articles/search.
resources :articles do
member { post :publish }
collection { get :search }
endاختبار سريع
اختبروا مدى فهمكم للتوجيه.
مراجعة: المسارات والموارد
لقد تعلّمتم التوجيه بأسلوب REST:
- تربط المسارات الفعل والمسار بـ
controller#action. - ينشئ
resourcesسبعة مسارات قياسية. - تتجنب مساعدات المسار كتابة عناوين URL مباشرة.
- تتيح مسارات
only/exceptوالتداخل والعضو والمجموعة تخصيص مجموعة المسارات. - يحدّد
rootالصفحة الرئيسية، بينما يسردrails routesكل شيء.
سنكتب بعد ذلك وحدات التحكم التي تتولى معالجة هذه الطلبات.
الأسئلة الشائعة
هل درس «المسارات والموارد» مجاني؟
نعم — نص درس «المسارات والموارد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ruby Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ruby Academy 4 دروس في المجموع.
ماذا ستتعلم في «المسارات والموارد»؟
التوجيه وفق REST تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Ruby Academy؟
لا تُشترط خبرة سابقة. Ruby Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «المسارات والموارد»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Ruby Academy هذا؟
نعم. كل درس في Ruby Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المسارات والموارد
- وحدات التحكم والإجراءات
- المعلمات القوية
- العروض والتصيير