Snabbreferens

Rails routing fusklapp

En snabb referensguide för routing i Rails: resursrutter, member- och collection-åtgärder, namnrymder, scopes, begränsningar och rutthelpers.

· Publicerad

Rails router känner igen webbadresser och dirigerar dem till en controllers åtgärd, samtidigt som den genererar motsvarande sökvägar och URL:er via helpers.

Resursrutter (resources)

Rails.application.routes.draw do
  root "home#index"

  resources :articles do
    # Medlemsrutter (opererar på ett specifikt objekt /articles/:id/publish)
    member do
      patch :publish
    end

    # Samlingsrutter (opererar på /articles/search)
    collection do
      get :search
    end

    # Kapslade resurser (/articles/:article_id/comments)
    resources :comments, only: [:create, :destroy]
  end
end

Hjälpmetoder för rutter (Route Path Helpers)

Åtgärd Sökvägshelper Genererad 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

Namnrymder & Scopes (Namespaces & Scopes)

# Namespace: URL-prefix med /admin och controllers med Admin::
namespace :admin do
  resources :users
end
# Dirigerar till Admin::UsersController på /admin/users

# Scope: URL-prefix utan att ändra controllerns namnrymd
scope "/v1" do
  resources :posts
end

Anpassade singulära rutter & omdirigeringar

# Anpassad HTTP-metodmappning
get '/about', to: 'pages#about'
post '/webhook', to: 'webhooks#receive'

# 301 Permanent omdirigering
get '/stories', to: redirect('/articles')

Referenser

Relaterade ämnen