Introducción

1

Desarrollo de un Gestor de Tareas con Ruby on Rails

2

Historia de Ruby y Ruby on Rails: Fundamentos y Evolución

Entorno de desarollo

3

Estructura de un Proyecto en Ruby on Rails

4

Curso Completo de Instalación de Ruby on Rails en Linux

5

Instalación de Ruby on Rails en macOS y Windows 10

Nuestra primera aplicación

6

Arquitectura MVC y RESTful en Rails: Análisis Detallado

7

Creación de aplicaciones web con Ruby on Rails

8

Creación de Rutas y Controladores en Ruby on Rails

9

Generación de modelos en Rails: Creación y manipulación básica

10

Gestión de Credenciales en Ruby on Rails

11

Gestión de assets en Rails: optimización y pipeline

12

Uso práctico del comando Rails Generate Scaffold en aplicaciones Web

13

Migraciones de Base de Datos en Ruby on Rails

14

Migración de Plantillas ERB a Haml: Mejora tu Código y Renderización

15

Formularios Dinámicos con SimpleForm y HAML en Rails

16

Internacionalización de Aplicaciones Web con Rails y i18n

17

Depuración en Ruby on Rails: Uso de Byebug y Pry

Proyecto del curso: primeros pasos

18

Creación de Sistema de Gestión de Tareas con Ruby on Rails

19

Diseño de Modelos en Aplicaciones de Organización de Tareas

20

Creación de Scaffolds en Rails con Bootstrap

21

Internacionalización en Rails: Gemas y Diccionarios I18n

22

Validaciones de Modelo en Ruby on Rails: Presencia y Unicidad

Proyecto del curso: usuarios

23

Autenticación de usuarios con Devise en Ruby on Rails

24

Migración de Llave Foránea en Rails para Relación Usuario-Tarea

25

Integración de usuarios y tareas con controladores Rails

26

Formularios anidados en Rails con la gema Cocoon y jQuery

27

Formularios Rails Dinámicos: Anidación con Cocoon y Validaciones

28

Gestión de permisos con KanKan en Rails

Proyecto del curso: interacciones

29

Uso de Callbacks en Rails: Controladores y Modelos

30

Programación de Seeds en Rails: Creación Automática de Datos

31

Envía Correos con ActionMailer en Rails

32

Creación y gestión de rutas en Ruby on Rails

33

Autorización de comentarios con CanCanCan en Rails

34

Embellécimiento de Aplicaciones con Bootstrap y Rails

Cierre

35

Despliegue de Aplicaciones Rails con Heroku

36

Desarrollo de Aplicaciones Web con Ruby on Rails

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Creación de Rutas y Controladores en Ruby on Rails

8/36
Recursos

¿Cómo establecer una ruta en Rails?

En Rails, las rutas son fundamentales para mapear las solicitudes HTTP entrantes a las acciones de los controladores adecuados. Primero, debes abrir el archivo routes.rb ubicado dentro del directorio config. Utiliza la convención de nombrar tus controladores y acciones en inglés, siguiendo las mejores prácticas. En esta clase, crearemos una ruta llamada hola que renderizará un HTML con un mensaje de texto. Usando el método get, la ruta quedaría como sigue:

get 'hola', to: 'welcome#hello'

Este método relaciona el camino hola con el controlador welcome y la acción hello, aún sin implementar. Rails gestiona esta relación utilizando convenciones del lenguaje inglés, potenciando la lógica interpretativa.

¿Cómo crear un controlador en Rails?

Los controladores en Rails son responsables de gestionar las solicitudes y enviar respuestas adecuadas. Para crear un controlador, sigue estos pasos:

  1. Navega al directorio app/controllers.
  2. Crea un archivo nuevo para el controlador, nombrándolo como welcome_controller.rb, asegurando incluir el sufijo _controller.
  3. Define la clase en el archivo asegurando la notación CamelCase para la clase:
class WelcomeController < ApplicationController
  def hello
  end
end

Enumerando las convenciones, el controlador hereda de ApplicationController, dotándolo de funcionalidades esenciales que lo transforman en un controlador integrado de Rails.

¿Cómo crear una vista en Rails?

La vista es el componente encargado de la presentación, donde se renderiza el HTML. Para establecer una vista en Rails:

  1. Dirígete a la carpeta app/views.
  2. Crea un directorio llamado welcome para agrupar las vistas del controlador del mismo nombre.
  3. Dentro de este directorio, crea un archivo hello.html.erb.

En el archivo hello.html.erb, puedes escribir el código HTML que será la respuesta al visitar la ruta configurada en routes.rb. Por ejemplo:

<h1>¿Cómo estás?</h1>

Así, al acceder a la ruta, esta vista se mostrará al usuario, demostrando cómo los controladores y vistas trabajan juntos en Rails.

¿Cómo iniciar un servidor en Rails y verificar el resultado?

Iniciar un servidor en Rails es esencial para probar las rutas y vistas configuradas. Usa el siguiente comando en la consola de comandos, asegurándote de estar en el directorio raíz de tu aplicación (en este caso, mi_app):

rails server

El servidor se inicia en el puerto 3000 por defecto. Abre un navegador web y dirígete a http://localhost:3000/hola o http://localhost:3000/hello, dependiendo de la implementación. Podrás ver tu mensaje de ¿Cómo estás? renderizado.

Durante este proceso, es normal experimentar un retraso inicial mientras se compilan ciertos paquetes de JavaScript. Posterior a esta carga inicial, las siguientes visitas a la URL serán más rápidas. Ahora tienes un sistema básico de solicitud-respuesta en Rails, listo para ser expandido y complejizado en futuras lecciones.

Aportes 16

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Entender el enrutamiento básico


Vamos crear una ruta con ruby.

El método get en RoR nos hace un sistema de mapeo que conseguirá el método GET, y este va a buscar un $PATH llamado ‘hola’, ahora a partir de ese mapeo va utilizar una equivalencia para enviarlo a un controlador y a una acción dentro del controlador.

# routes.rb
Rails.application.routes.draw do
  # En este caso el PATH es 'hola', el controlador es 'welcome' y su acción es 'hello'
  get 'hola', to: 'welcome#hello'
end

♦ Rails utiliza la convención de que toda la lógica y construcción que vamos a hacer sea utilizando el leguaje Inglés.

Dentro de app → controllers vamos a crear los archivos de los controladores, para hacerlo tenemos que poner el nombre que tiene el controlador que definimos en la ruta y añadir al final _controller.rb

♦ Para crear clases en Ruby debemos utilizar la convención de un sistema CamelCase.

Para convertir una clase en un controlador debemos utilizar una herencia de RoR que es llamada ApplicationController. Esta clase de ApplicationController dotará una serie de funcionalidades y métodos que nos permitirán establecer nuestra clase WelcomeController como un controlador de RoR.

# welcome_controller.rb

class WelcomeController < ApplicationController
    # Este método 'hello' es una acción en Rails
    def hello
        @var = Pet.first.name
        @var2 = Pet.first.breed

        @credentials = Rails.application.credentials.hello
    end
end

Para crear nuestra vista debemos ir a app → views y crear el directorio con el nombre del controlador y un archivo html llamado como la acción.

# hello.html

Para prender el servidor de rails, escribimos el comando:

rails server

♦ Para acceder a la ruta escribimos localhost:3000/hola

Si lo desean también pueden colocar la ruta como

  get 'hola' => 'welcome#hello'

Rails provee varias maneras de escribir el mismo asunto

A los que les salga el error de dependencias de webpack hay que ejecutar el comando:
rails webpack:install

a mi me paso, y me funcionó.

Me marca el siguiente error :
No template for interactive request
WelcomeController#hello is missing a template for request formats: text/html

NOTE!
Unless told otherwise, Rails expects an action to render a template with the same name,
contained in a folder named after its controller. If this controller is an API responding with 204 (No Content),
which does not require a template, then this error will occur when trying to access it via browser,
since we expect an HTML template to be rendered for such requests. If that’s the case, carry on.

Si a alguno, como a mi aparece un error como el siguiente:

ActiveRecord::NoDatabaseError (FATAL:  database "mi_app_development" does not exist
):

Es porque la base de datos aún no ha sido creada, para arreglarlo basta con escribir:

rails db:create

Después ya solo se vuelve a iniciar el servidor y listo.

Súper bien explicado. Mil gracias.

Dentro del archivo config>routes.rb se definen todas las rutas de la aplicación.

Usando el método get hará un mapeo donde, a través de la petición que llega desde el cliente al servidor va a mapear el método get.

Este método va a buscar el path que le asignemos y a partir del mapeo que realizar una equivalencia para enviarlo a un controlador y a una acción dentro del controlador.

Rails permite usar el idioma inglés, por lo que es recomendable nombrar los controladores en inglés.

# <metodo> '<PATH>', to: <controlador>#<accion>
get 'hola', to: 'welcome#hello'

Todos los controladores deben ir en la carpeta app>controllers, por convención todos controladores terminan con el sufijo controller y usando snake case.

La clase dentro de cada controlador debe llamarse como el archivo pero usando camel case.

Para que la clase funcione como un controlador tiene que heredar de la clase que nos provee Rails llamada AppliactionController, que provee a la clase con una serie de funcionalidades y métodos que permitirá establecer el controlador.

class WelcomeController <ApplicationController

Las funciones que se definan dentro de la clase WelcomeController corresponderán a las acciones, en este caso hay definir una función llamada hello, que fue la que asignamos en la ruta.


Por último, hay que crear la vista que se va a renderizar cuando se haga la petición al controlador. Las vistas se crean en la carpeta app>views. Dentro de esta carpeta se debe crear otra carpeta con el nombre del controlador y dentro un archivo con el nombre de la acción con extensión HTML. Para esta situación se crea una carpeta llamada welcome y dentro un archivo llamada hello.html.

Para correr un servidor de desarrollo para ver la aplicación funcionando se utiliza el comando rails server.

Nos dará una dirección local donde está corriendo la aplicación. En esa dirección se muestra una pantalla de bienvenida de Rails. Si queremos ver la vista que se creó hay que añadir a la ruta /hola que es la ruta que definimos en el archivo routes.rb.

Me pueden ayudar con esto porfa

Esto es mucho mejor que JavaScript, en JS te tenias que descargar 1000 librerias para hacer un routing

Si tienen problemas al renderizar la página con el localhost:3000/hola
Les sugiero revisar la propuesta de MatNemeth en este link

cuando entro en localhost/3000/hola me sale el siguiente error

Routing Error
uninitialized constant WelcomeController.

y en la terminal me sale el siguiente error

ActionController::RoutingError (uninitialized constant WelcomeController):

Alguien me puede ayudar con este problema? que no se por que me sale si se conecta bien al servidor de rails pero cuando le ingreso la variación /hola ya no conecta.

Sería bueno que explicaran cual es la diferencia entre tener las diferentes capas lógicas entre modelos y controladores para aplicar otros patrones de diseño.
Por lo demás muy buena explicación.

Hola a todos!!!, Tuve muchos problemas para la instalación de Rails en mi Mac, si alguien más no puede seguir con el curso porque no le corre, sigan este tutorial de instalación q es el más completo q conseguí y funciona perfect.
https://install-rails-mac.com/#create-a-workspace-folder

que buenas clases

Yo tube problema al momento de ingresar el localhost:3000 , me salia error pero el servidor si levanto normal? que puede ser ? gracias

**Si tienen problemas con las librerias / gemas vean este video **

gemas