Resource ó Recursos en Rails

Un recurso es un elemento que podemos realizarle un CRUD*.

* ¿Qué es un CRUD?

Create, Read, Update, Destroy

Crear, Leer, Actualizar y Borrar

 

En Rails las operaciones CRUD se hacen con la ayuda de los modelos, las vistas y los controladores.

Podemos generar cada uno de ellos manualmente o utilizar scaffolds (automáticamente).

Crear un Recurso con scaffolds

1.-

ruby bin/rails generate scaffold Nombrerecurso atributodelrecurso:tipodedato

Por ejemplo –> ruby bin/rails generate scaffold Coche kilometros:integer

 

2-. Ejecutamos las migraciones pendientes, o sea, crea la tabla cursos.

ruby bin/rails db:migrate

 

3.- Levantamos el servidor

ruby bin/rails server

 

4.- Y vamos al navegador con la ruta del recurso creado, por ejemplo –> localhost:3000/courses

5.- Si apretamos en New Course, podremos crearlo con los atributos declarados, en este caso solo con el title

6.- Ya una vez creado, vamos nuevamente a  –>/courses , y vemos que esta el elemento nuevo en la lista de cursos

 

CONTROLADOR

Detectan y recibir las peticiones d elos usuarios y contactar con los modelos correspondientes.

 

Al hacer la peticion al servidor nos dice, que a recibido una peticion GET a /courses

Renderizando courses/index.html.erb con el layout application

Hace la consulta para devolver todos los cursos

Y renderiza todo

Dentro del courses controller este es el que se crea por default:

Por defecto se renderiza la vista que tiene el nombre igual a nuestro controlador.

El layout por defecto es el application.html

 

Pero podemos especificar que template y layout  queremos especifico de esta manera:

 

 

MODELO

CRUD de la informacio nque nos piden.

Los modelos representan nuestra casi siempre tablas de la BBDD. Nos ayudan a interactuar con nuestras tablas de las BBDD, para no escribir nuestras querys.

En el caso de course vemos el modelo creado hereda de ApplicationRecord y este a su vez hereda de ActiveRecord.

 

En ActiveRecord se encuentran declarados todos los metodos como all, new,save…

 

VISTAS

Archivos HTML que pueden incluir expresiones de ruby embebidos. Se encuentran en app/views. Normalmente cada modelo va a tener una carpeta de vistas con varias vistas para un solo modelo (una para agregar información, otra para editar información…)

 

A su vez layouts/application.html.erb contiene la estructura basica html con un yield en el body en el cual se incrusta las vistas anteriores.