Make it easier to add custom routes

Until now, people had to edit the original route files in order to add
custom routes.

This was inconsistent with the other customizations, since we use custom
folders or files for customizing controllers, components, views, ...
(which you usually customize as well when adding a new route).

So now we're providing a file for custom routes, which will make it
easier to know which routes are not present in Consul Democracy by
default.
This commit is contained in:
Javi Martín
2024-09-02 15:06:19 +02:00
parent ee089a5209
commit 9d818b4ec2
10 changed files with 90 additions and 0 deletions

View File

@@ -12,4 +12,5 @@
* [Otras clases de Ruby (GraphQL, lib, mailers, builders)](ruby.md)
* [Gemas](gems.md)
* [Configuración de la aplicación](application.md)
* [Rutas](routes.md)
* [Tests](tests.md)

View File

@@ -41,6 +41,7 @@ Aparte de estos directorios, también puedes utilizar los siguientes ficheros:
* `config/environments/custom/production.rb`
* `config/environments/custom/staging.rb`
* `config/environments/custom/test.rb`
* `config/routes/custom.rb`
* `Gemfile_custom`
Utilizando estos ficheros, podrás personalizar [traducciones](translations.md), [imágenes](images.md), [CSS](css.md), [JavaScript](javascript.md), [vistas HTML](views.md), cualquier código de Ruby como [modelos](models.md), [controladores](controllers.md), [componentes](components.md) u [otras clases de Ruby](ruby.md), [gemas](gems.md), [configuración de la aplicación](application.md), [rutas](routes.md) y [tests](tests.md).

View File

@@ -0,0 +1,27 @@
# Personalización de rutas
Al añadir acciones de controlador personalizadas, necesitas definir una ruta que configure la URL que se usará para esas acciones. Puedes hacerlo editando el fichero `config/routes/custom.rb`.
Por ejemplo, para añadir una nueva sección al área de administración para gestionar pensamientos felices ("happy thoughts", en inglés) y verificar que se han hecho realidad, puedes escribir el siguiente código:
```ruby
namespace :admin do
resources :happy_thoughts do
member do
put :verify
end
end
end
```
O, si, por ejemplo, quisieras añadir un formulario para editar debates en el área de administración:
```ruby
namespace :admin do
resources :debates, only: [:edit, :update]
end
```
Al hacer esto, las rutas existentes de debates en el área de administración se mantendrán, y a ellas se añadirán las rutas "edit" y "update".
Las rutas que defines en este fichero tendrán precedencia sobre las rutas por defecto. Así que, si defines una ruta para `/proposals`, la acción por defecto para `/proposals` no se utilizará sino que en su lugar se usará la que definas tú.