En esta sección, aprenderás a crear una aplicación simple en Ruby on Rails desde cero. Este ejercicio te permitirá familiarizarte con la estructura de una aplicación Rails y los conceptos básicos necesarios para desarrollar aplicaciones web con este framework.
Paso 1: Configuración del Entorno
Antes de comenzar, asegúrate de tener Ruby y Rails instalados en tu sistema. Si no los tienes, sigue las instrucciones en la sección Configuración del Entorno Rails.
Paso 2: Crear una Nueva Aplicación Rails
-
Abre tu terminal y navega al directorio donde deseas crear tu nueva aplicación.
-
Ejecuta el siguiente comando para crear una nueva aplicación Rails llamada
blog
:rails new blog
Este comando generará una estructura de directorios y archivos para tu nueva aplicación Rails.
-
Navega al directorio de tu nueva aplicación:
cd blog
Paso 3: Iniciar el Servidor Rails
-
Inicia el servidor Rails ejecutando el siguiente comando:
rails server
-
Abre tu navegador web y navega a
http://localhost:3000
. Deberías ver la página de bienvenida de Rails, lo que indica que tu aplicación está funcionando correctamente.
Paso 4: Generar un Scaffold
Rails proporciona una herramienta llamada "scaffold" que genera automáticamente el código necesario para las operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en una base de datos.
-
Genera un scaffold para un modelo llamado
Post
con los atributostitle
(string) ybody
(text):rails generate scaffold Post title:string body:text
Este comando generará los archivos necesarios para el modelo
Post
, incluyendo controladores, vistas y migraciones de base de datos. -
Ejecuta las migraciones para actualizar la base de datos con la nueva tabla
posts
:rails db:migrate
Paso 5: Explorar la Aplicación
- Navega a
http://localhost:3000/posts
en tu navegador. Deberías ver una lista vacía de posts. - Haz clic en "New Post" para crear un nuevo post. Llena los campos
title
ybody
y haz clic en "Create Post". - Explora las funcionalidades de edición, visualización y eliminación de posts.
Paso 6: Entender la Estructura del Código
Modelos
El archivo del modelo Post
se encuentra en app/models/post.rb
:
Controladores
El archivo del controlador PostsController
se encuentra en app/controllers/posts_controller.rb
:
class PostsController < ApplicationController def index @posts = Post.all end def show @post = Post.find(params[:id]) end def new @post = Post.new end def create @post = Post.new(post_params) if @post.save redirect_to @post else render 'new' end end def edit @post = Post.find(params[:id]) end def update @post = Post.find(params[:id]) if @post.update(post_params) redirect_to @post else render 'edit' end end def destroy @post = Post.find(params[:id]) @post.destroy redirect_to posts_path end private def post_params params.require(:post).permit(:title, :body) end end
Vistas
Las vistas para el modelo Post
se encuentran en app/views/posts/
. Aquí están algunos ejemplos:
index.html.erb
: Lista de posts.show.html.erb
: Mostrar un post específico.new.html.erb
yedit.html.erb
: Formularios para crear y editar posts.
Ejercicio Práctico
Ejercicio 1: Añadir Validaciones
Añade validaciones al modelo Post
para asegurarte de que los campos title
y body
no estén vacíos.
Solución:
-
Abre el archivo
app/models/post.rb
. -
Añade las siguientes validaciones:
class Post < ApplicationRecord validates :title, presence: true validates :body, presence: true end
-
Intenta crear un post sin título o cuerpo para verificar que las validaciones funcionan correctamente.
Ejercicio 2: Personalizar las Vistas
Personaliza las vistas para mejorar la apariencia de tu aplicación. Por ejemplo, añade un encabezado y un pie de página a app/views/layouts/application.html.erb
.
Solución:
-
Abre el archivo
app/views/layouts/application.html.erb
. -
Añade el siguiente código:
<!DOCTYPE html> <html> <head> <title>Blog</title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all' %> <%= javascript_pack_tag 'application' %> </head> <body> <header> <h1>Welcome to My Blog</h1> </header> <%= yield %> <footer> <p>© 2023 My Blog</p> </footer> </body> </html>
Conclusión
En esta sección, has aprendido a crear una aplicación simple en Rails, generar un scaffold, y explorar la estructura del código generado. También has practicado añadiendo validaciones y personalizando vistas. Estos conocimientos te preparan para desarrollar aplicaciones más complejas y personalizadas en Rails.
En la siguiente sección, profundizaremos en la Arquitectura MVC de Rails para entender mejor cómo interactúan los modelos, vistas y controladores.
Curso de Programación en Ruby
Módulo 1: Introducción a Ruby
Módulo 2: Conceptos Básicos de Ruby
Módulo 3: Trabajando con Colecciones
Módulo 4: Programación Orientada a Objetos en Ruby
- Clases y Objetos
- Variables y Métodos de Instancia
- Variables y Métodos de Clase
- Herencia
- Módulos y Mixins
Módulo 5: Conceptos Avanzados de Ruby
- Bloques, Procs y Lambdas
- Metaprogramación
- Manejo de Excepciones
- Entrada/Salida de Archivos
- Expresiones Regulares
Módulo 6: Introducción a Ruby on Rails
- ¿Qué es Ruby on Rails?
- Configuración del Entorno Rails
- Creando una Aplicación Simple en Rails
- Arquitectura MVC
- Enrutamiento
Módulo 7: Pruebas en Ruby
- Introducción a las Pruebas
- Pruebas Unitarias con Minitest
- Desarrollo Guiado por Comportamiento con RSpec
- Mocking y Stubbing
Módulo 8: Mejores Prácticas en Ruby
- Estilo de Código y Convenciones
- Refactorización
- Optimización del Rendimiento
- Mejores Prácticas de Seguridad