Probando action text en rails 6

¿Qué es actiontext?

Actiontext es una componete de rails 6 que nos permite crear y editar texto enriquecido de forma sencilla, esto nos puede servir para crear un blog, agregar comentarios de usuarios o incluso enviar un mail.

Creando un blog con actiontext

Instalamos Rails 6 beta 6.0.0.beta1

Creamos un proyecto para nuestro blog con rails 6

Añadimos la gema image_processing para los previews de las imágenes que subiremos

Luego ejecutamos bundle en el terminal.

El siguiente paso consiste en instalar action_text, esto lo logramos ejecutando en el terminal en la carpeta del proyecto:

Obtendremos como resultado

Veremos que se agregó el editor trix (escrito en JS) a nuestros archivos js, además se generaron dos migraciones. Podemos correr las migraciones con:

Luego crearemos un scaffold de artículo donde subiremos el contenido, aquí solo agregaremos el título.

Nuevamente corremos las migraciones con:

Luego agregaremos al modelo de post el método de clase has_rich_text

Agregaremos a la vista parcial views/posts/_form.html.erb dentro del bloque del form un campo de texto con:

Para poder guardar el valor en la base de datos tenemos que asegurarnos que el campo content no sea descartado por los strong_param, para eso dentro del controller de posts app/controllers/posts_controller.rb agregaremos al método .permit dentro de post_params el nombre de nuestro atributo :content

Debería quedar:

Finalmente lo último que tenemos que modifcar es la vista para mostrar el contenido del post. Para lograr esto modificaremos el archivo dentro de views/posts/show y agregaremos:

Nuestro último paso es probar todo, levantamos el servidor con rails s y entramos a localhost:3000/posts, vamos a crear un nuevo post y arrastramos algunas imágenes sobre nuestro editor y disfrutamos mientras actiontext hace el resto del trabajo.

Share Button

Director de DesafíoLatam. Ingeniero Civil Informático de la Universidad Federico Santa María. Emprendedor lean, dedicado al desarrollo de una mejor web con ruby on rails. Fanático de los números y las métricas, la música y la fotografía.