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

  1. Abre tu terminal y navega al directorio donde deseas crear tu nueva aplicación.

  2. 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.

  3. Navega al directorio de tu nueva aplicación:

    cd blog
    

Paso 3: Iniciar el Servidor Rails

  1. Inicia el servidor Rails ejecutando el siguiente comando:

    rails server
    
  2. 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.

  1. Genera un scaffold para un modelo llamado Post con los atributos title (string) y body (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.

  2. Ejecuta las migraciones para actualizar la base de datos con la nueva tabla posts:

    rails db:migrate
    

Paso 5: Explorar la Aplicación

  1. Navega a http://localhost:3000/posts en tu navegador. Deberías ver una lista vacía de posts.
  2. Haz clic en "New Post" para crear un nuevo post. Llena los campos title y body y haz clic en "Create Post".
  3. 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:

class Post < ApplicationRecord
end

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 y edit.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:

  1. Abre el archivo app/models/post.rb.

  2. Añade las siguientes validaciones:

    class Post < ApplicationRecord
      validates :title, presence: true
      validates :body, presence: true
    end
    
  3. 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:

  1. Abre el archivo app/views/layouts/application.html.erb.

  2. 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>&copy; 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.

© Copyright 2024. Todos los derechos reservados