En aquest tema, aprendrem sobre les rutes en Ruby on Rails, una part fonamental de qualsevol aplicació web. Les rutes defineixen com les URL de la teva aplicació es mapegen a les accions dels controladors. Això permet que la teva aplicació respongui a diferents sol·licituds HTTP de manera adequada.

Objectius d'Aprenentatge

Al final d'aquest tema, hauràs après:

  • Què són les rutes i per què són importants.
  • Com definir rutes bàsiques en Rails.
  • Com utilitzar rutes dinàmiques amb paràmetres.
  • Com utilitzar rutes RESTful.
  • Com generar rutes automàticament amb resources.

Què són les Rutes?

Les rutes en Rails són definicions que determinen com les sol·licituds HTTP (com GET, POST, PUT, DELETE) es mapegen a les accions dels controladors. Les rutes es defineixen en el fitxer config/routes.rb.

Exemple de Fitxer de Rutes

Rails.application.routes.draw do
  get 'welcome/index'
end

Aquest exemple defineix una ruta que mapeja la URL /welcome/index a l'acció index del controlador WelcomeController.

Definint Rutes Bàsiques

Ruta GET

get 'articles/show'

Aquesta ruta mapeja la URL /articles/show a l'acció show del controlador ArticlesController.

Ruta POST

post 'articles/create'

Aquesta ruta mapeja la URL /articles/create a l'acció create del controlador ArticlesController.

Ruta PUT

put 'articles/update'

Aquesta ruta mapeja la URL /articles/update a l'acció update del controlador ArticlesController.

Ruta DELETE

delete 'articles/destroy'

Aquesta ruta mapeja la URL /articles/destroy a l'acció destroy del controlador ArticlesController.

Rutes Dinàmiques amb Paràmetres

Les rutes dinàmiques permeten passar paràmetres a les accions dels controladors.

Exemple

get 'articles/:id', to: 'articles#show'

En aquest exemple, :id és un paràmetre dinàmic que es passarà a l'acció show del controlador ArticlesController.

Accedint als Paràmetres

Dins del controlador, pots accedir als paràmetres utilitzant params.

class ArticlesController < ApplicationController
  def show
    @article = Article.find(params[:id])
  end
end

Rutes RESTful

Rails segueix el patró RESTful per definir rutes que mapegen les operacions CRUD (Create, Read, Update, Delete) a les accions dels controladors.

Exemple

resources :articles

Aquesta única línia genera automàticament totes les rutes necessàries per a les operacions CRUD:

HTTP Verbs Path Controller#Action Used for
GET /articles articles#index display a list of all articles
GET /articles/:id articles#show display a specific article
GET /articles/new articles#new return an HTML form for creating a new article
POST /articles articles#create create a new article
GET /articles/:id/edit articles#edit return an HTML form for editing an article
PATCH/PUT /articles/:id articles#update update a specific article
DELETE /articles/:id articles#destroy delete a specific article

Generant Rutes Automàticament amb resources

Utilitzar resources és una manera eficient de definir rutes RESTful per a un recurs.

Exemple

resources :articles do
  resources :comments
end

Aquest exemple genera rutes RESTful per a articles i comments, on comments és un recurs "nested" dins de articles.

Exercici Pràctic

Definició de Rutes

  1. Crea un nou controlador anomenat BooksController amb les accions index, show, new, create, edit, update, i destroy.
  2. Defineix les rutes RESTful per al controlador BooksController utilitzant resources.

Solució

  1. Crear el controlador:
rails generate controller Books index show new create edit update destroy
  1. Definir les rutes en config/routes.rb:
Rails.application.routes.draw do
  resources :books
end

Resum

En aquest tema, hem après què són les rutes en Rails i com definir-les. Hem vist com crear rutes bàsiques, utilitzar paràmetres dinàmics, i definir rutes RESTful utilitzant resources. Les rutes són una part essencial de qualsevol aplicació Rails, ja que determinen com les sol·licituds HTTP es mapeen a les accions dels controladors. Amb aquest coneixement, estàs preparat per gestionar les rutes de la teva aplicació Rails de manera eficient.

© Copyright 2024. Tots els drets reservats