Formularios en Ruby on Rails

rubyonrails

Seguimos con los tutoriales de Ruby on Rails, en esta ocasión vamos a trabajar con modelos, controladores y vistas, pero nos vamos a centrar en el trabajo con formularios en Ruby on Rails.

Cómo ya sabemos, Ruby on Rails nos ofrece una serie de generadores a través de los cuáles podemos crear modelos, controladores y completos cruds, pero eso no ayuda cuando estamos empezando ya que la mejor forma de aprender es haciendo el proceso completo, por eso en este tutorial vamos a ir haciéndolo todo paso a paso.

Por defecto Ruby on Rails trabaja con bases de datos SQLite3 , de momento no vamos a cambiar este comportamiento, más adelante sí.

Si tienes dudas con la instalación de Ruby on Rails puedes seguir este tutorial.

Para crear el proyecto simplemente ejecuta el siguiente comando.


Ahora ábrelo con tu editor favorito, para crear un controlador llamado Hero con los métodos index, new y create, ejecuta el siguiente comando.


Ahora vamos a crear un sencillo modelo para poder guardar y obtener datos de nuestra base de datos, para ello simplemente ejecuta el siguiente comando.


El comando anterior habrá creado un modelo en app/models/ llamado Hero.rb y un archivo de migración en db/migration, si no conoces el concepto de migración, no es más que un sistema para poder llevar un control de versiones sobre nuestra base de datos.

Abre la migración y modifica el código por el siguiente.


Este código simplemente creará nuestra tabla heros, para ello ejecuta el siguiente comando desde la terminal.


Ahora ya estamos listos para hacer las operaciones que necesitemos con nuestra tabla heros.

Ahora vamos a realizar una pequeña modificación a nuestro archivo de rutas para poder mapear toda la funcionalidad que vamos a necesitar, para ello abre el archivo config/routes.rb y modifica su contenido por lo siguiente.


Ya tenemos toda la configuración hecha y podemos programar nuestro modelo Hero para que nuestro formulario esté correctamente validado, para ello abre el archivo app/models/hero.rb y reemplaza el código por el siguiente.


Eso hará que nuestro formulario no sea procesado si los campos están vacíos, ¡y no necesitamos hacer nada más!, Ruby on Rails nos facilita mucho la vida en este aspecto.

Abre el controlador app/controllers/hero_controller.rb y reemplaza el código por el siguiente, el cuál contiene toda la lógica que vamos a necesitar.


Todo está perfectamente explicado así que no nos vamos a parar, vamos a mostrar todos los héroes así que abre el archivo app/views/index.html.erb y reemplaza el código por el siguiente.


Simplemente hacemos un each de los héroes, si no hay ninguno no mostrará nada, pero te recomiendo que arregles eso con un condicional, puedes utilizar if o unless.

Ahora sólo nos que crear el formulario de héroes, así que abre el archivo app/views/new.html.erb y reemplaza el código.


Y si no me equivoco eso eso todo, si ahora visitas http://127.0.0.1:3000/hero/index verás el listado de héroes, si pulsas el enlace para crear un nuevo héroe podrás añadir uno nuevo, falla el formulario para ver los errores, crea uno nuevo para ver cómo aparece el mensaje flash y haz tus pruebas.

Espero que te haya gustado, Ruby on Rails es un gran framework que nos permite hacer cosas complejas de forma muy sencilla.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies