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
Aquest exemple defineix una ruta que mapeja la URL /welcome/index
a l'acció index
del controlador WelcomeController
.
Definint Rutes Bàsiques
Ruta GET
Aquesta ruta mapeja la URL /articles/show
a l'acció show
del controlador ArticlesController
.
Ruta POST
Aquesta ruta mapeja la URL /articles/create
a l'acció create
del controlador ArticlesController
.
Ruta PUT
Aquesta ruta mapeja la URL /articles/update
a l'acció update
del controlador ArticlesController
.
Ruta DELETE
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
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
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
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
- Crea un nou controlador anomenat
BooksController
amb les accionsindex
,show
,new
,create
,edit
,update
, idestroy
. - Defineix les rutes RESTful per al controlador
BooksController
utilitzantresources
.
Solució
- Crear el controlador:
- Definir les rutes en
config/routes.rb
:
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.
Curs de Programació en Ruby
Mòdul 1: Introducció a Ruby
Mòdul 2: Conceptes Bàsics de Ruby
Mòdul 3: Treballant amb Col·leccions
Mòdul 4: Programació Orientada a Objectes en Ruby
- Classes i Objectes
- Variables i Mètodes d'Instància
- Variables i Mètodes de Classe
- Herència
- Mòduls i Mixins
Mòdul 5: Conceptes Avançats de Ruby
- Blocs, Procs i Lambdas
- Metaprogramació
- Gestió d'Excepcions
- Entrada/Sortida de Fitxers
- Expressions Regulars
Mòdul 6: Introducció a Ruby on Rails
- Què és Ruby on Rails?
- Configuració de l'Entorn Rails
- Creació d'una Aplicació Simple en Rails
- Arquitectura MVC
- Rutes
Mòdul 7: Proves en Ruby
- Introducció a les Proves
- Proves Unitàries amb Minitest
- Desenvolupament Basat en Comportament amb RSpec
- Mocking i Stubbing
Mòdul 8: Millors Pràctiques en Ruby
- Estil de Codi i Convencions
- Refactorització
- Optimització del Rendiment
- Millors Pràctiques de Seguretat