En el mundo del desarrollo web, la edición de contenido es una parte fundamental de la experiencia del usuario. Ruby on Rails, uno de los frameworks más populares para construir aplicaciones web, ha integrado una herramienta poderosa llamada ActionText, que permite a los desarrolladores manejar contenido enriquecido de manera sencilla. En este artículo, exploraremos cómo usar ActionText junto con Trix, un editor WYSIWYG (What You See Is What You Get), para crear una experiencia de edición de texto fluida y efectiva en nuestras aplicaciones Rails.
ActionText es una parte de Rails que permite a los desarrolladores manejar texto enriquecido. Introducido en Rails 6, ActionText facilita la creación, edición y almacenamiento de contenido que incluye texto, imágenes y otros elementos multimedia. Esto es especialmente útil para aplicaciones que requieren un sistema de gestión de contenido (CMS) o donde los usuarios necesitan crear publicaciones, comentarios o cualquier tipo de contenido que no sea solo texto plano.
Trix es un editor WYSIWYG desarrollado por Basecamp, diseñado para ser simple y fácil de usar. Permite a los usuarios formatear texto, insertar imágenes y crear listas, todo desde una interfaz intuitiva. Trix se integra perfectamente con ActionText, lo que lo convierte en una opción ideal para aplicaciones Rails que necesitan capacidades de edición de texto enriquecido.
Para comenzar a usar ActionText y Trix en tu aplicación Rails, sigue estos pasos:
Si aún no tienes una aplicación Rails, puedes crear una nueva ejecutando el siguiente comando en tu terminal:
rails new mi_aplicacion
Para agregar ActionText, ejecuta el siguiente comando:
rails action_text:install
Esto generará los archivos necesarios y migraciones para ActionText. Luego, ejecuta las migraciones:
rails db:migrate
Para usar Trix, primero necesitas agregarlo a tu Gemfile. Abre el archivo Gemfile y agrega la siguiente línea:
gem 'trix'
Luego, ejecuta el siguiente comando para instalar la gema:
bundle install
Ahora, necesitas incluir Trix en tus archivos JavaScript y CSS. Abre el archivo app/javascript/packs/application.js
y agrega lo siguiente:
import "trix" import "@rails/actiontext"
Luego, en tu archivo CSS, asegúrate de incluir Trix. Abre app/assets/stylesheets/application.scss
y agrega:
@import "trix";
Ahora que tienes ActionText y Trix configurados, es hora de crear un modelo que use ActionText. Por ejemplo, si estás creando un blog, puedes crear un modelo llamado Post
:
rails generate model Post title:string content:text
Luego, abre el archivo de migración generado y agrega el siguiente código para habilitar ActionText:
class CreatePosts < ActiveRecord::Migration[6.0] def change create_table :posts do |t| t.string :title t.text :content t.timestamps end # Agregar soporte para ActionText add_timestamps :posts, default: -> { 'CURRENT_TIMESTAMP' }, null: false end end
Ejecuta la migración:
rails db:migrate
Ahora, crea un controlador para manejar los posts:
rails generate controller Posts
En el controlador PostsController
, agrega las acciones necesarias:
class PostsController < ApplicationController def new @post = Post.new end def create @post = Post.new(post_params) if @post.save redirect_to @post else render :new end end private def post_params params.require(:post).permit(:title, :content) end end
Ahora, crea las vistas para el formulario de creación de posts. En app/views/posts/new.html.erb
, agrega el siguiente código:
<%= form_with model: @post do |form| %><%= form.label :title %> <%= form.text_field :title %><%= form.label :content %> <%= form.rich_text_area :content %><%= form.submit "Crear Post" %><% end %>
Ahora que has configurado ActionText y Trix, es hora de probar tu aplicación. Inicia el servidor Rails:
rails server
Visita http://localhost:3000/posts/new
en tu navegador. Deberías ver un formulario donde puedes ingresar un título y contenido para tu post. Usa el editor Trix para formatear tu texto, agregar imágenes y más.
Una vez que hayas creado un post, querrás mostrarlo en tu aplicación. Crea una vista para mostrar el post en app/views/posts/show.html.erb
:
<%= @post.title %>
<%= @post.content %>
Ahora, agrega la acción show
en tu controlador:
def show @post = Post.find(params[:id]) end
En este artículo, hemos explorado cómo usar ActionText junto con Trix en una aplicación Rails. Desde la configuración inicial hasta la creación y visualización de contenido enriquecido, hemos cubierto los pasos necesarios para implementar esta poderosa funcionalidad en tu aplicación. ActionText y Trix no solo mejoran la experiencia del usuario, sino que también simplifican el proceso de gestión de contenido para los desarrolladores.
Ahora que tienes una comprensión básica de cómo usar ActionText y Trix, ¡es hora de experimentar y crear contenido enriquecido en tu propia aplicación Rails! No dudes en explorar más características y personalizaciones que estas herramientas ofrecen para llevar tu aplicación al siguiente nivel.
© 2024 RailsInsights. All rights reserved.