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
endRutes 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
BooksControlleramb les accionsindex,show,new,create,edit,update, idestroy. - Defineix les rutes RESTful per al controlador
BooksControllerutilitzantresources.
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
