يتعرف موجه Rails على عناوين URL ويرسلها إلى إجراءات المتحكم المناسبة، مع توفير دوال مساعدة لإنشاء الروابط والمسارات تلقائياً.
المسارات المعتمدة على الموارد (resources)
Rails.application.routes.draw do
root "home#index"
resources :articles do
# مسارات الأعضاء (تعمل على عنصر محدد مثل /articles/:id/publish)
member do
patch :publish
end
# مسارات المجموعات (تعمل على /articles/search)
collection do
get :search
end
# الموارد المتداخلة (/articles/:article_id/comments)
resources :comments, only: [:create, :destroy]
end
end
مساعدات مسارات التوجيه (Route Path Helpers)
| الإجراء (Action) | المساعد (Path Helper) | عنوان URL المنشأ |
|---|---|---|
index |
articles_path |
/articles |
show |
article_path(@article) |
/articles/:id |
new |
new_article_path |
/articles/new |
edit |
edit_article_path(@article) |
/articles/:id/edit |
مساحات الأسماء والنطاقات (Namespaces & Scopes)
# Namespace: إضافة بادئة /admin إلى URL والمتحكمات مثل Admin::
namespace :admin do
resources :users
end
# يتم التوجيه إلى Admin::UsersController عند /admin/users
# Scope: إضافة بادئة إلى URL دون تغيير مساحة اسم المتحكم
scope "/v1" do
resources :posts
end
مسارات مفردة مخصصة وإعادة التوجيه
# تعيين مخصص لأفعال HTTP
get '/about', to: 'pages#about'
post '/webhook', to: 'webhooks#receive'
# إعادة توجيه دائمة (301)
get '/stories', to: redirect('/articles')