Blog sencillo con Rails — Parte 1

¡Hola! Esta es la primera publicación de una serie de contenidos, relacionados con el desarrollo web (especialmente ror), que iré publicando. En esta ocasión he decidido empezar por un proyecto sencillo: el desarrollo de un blog sencillo.

Si tienes alguna duda o se presenta algún error no dudes en decírmelo.

Idea del proyecto

El blog que desarrollaremos tendrá:

  • CRUD para la creación de “posts”
  • Cada publicación podrá ser “recomendada” y comentada.
  • Y por supuesto, un sistema de usuarios

Herramientas usadas

Para este tutorial estoy desarrolando en ElementaryOS (Loki). Uso la hermosa consola que trae el sistema. Así mismo, uso Scratch o en su defecto gedit como editores de texto. Aunque si estás empezando en el desarrollo con Rails te recomiendo usar RubyMine — la licencia para estudiantes es gratuita, siempre y cuando no desarrolles nada comercial.

¡Manos a la obra!

1. Creación del proyecto

A la fecha de hoy (21.06.2017) estoy usando la versión 5.1.1 de ror. Pues bien, empecemos. Como bien sabes, para empezar un proyecto en rails solo basta con escribir en consola: $ rails new blog

Resultado en consola de “rails new blog”

Ahora nos dirijimos a la carpeta que rails crea: $ cd blog

Carpeta del proyecto

Como te habrás podido dar cuenta hay varias carpetas y archivos, no te asustes. Por el momento usaremos unos cuantos.

2. Gemas

Las gemas son librerías que puedes crear o que otros ya han creado. Son una forma de extender las funcionalidades de Rails. Las gemas nos permiten agilizar el desarrollo al solucionar problemas que en otros casos debíamos desarrollar. Para este proyecto usaremos varias gemas:

  • Paperclip: esta gema nos permitirá implementar el sistema de usuarios
  • Devise: con devise podremos subir y manejar archivos

Para agregar las gemas a nuestro proyecto debemos editar el archivo Gemfile

Vista inicial del archivo Gemfile

Debemos agregar las gemas que usaremos, así:

gem ‘devise’
gem ‘paperclip’

Luego de haber agregado estas dos líneas debemos instalarlas: $ bundle install

Usuarios

Vamos a implementar el sistema de usuarios. Para esto usaremos devise. Lo primero que debemos hacer es correr el generador de instalación de devise: $ rails g devise:install

Si lees un poco lo que dice el texto que aparece en consola cuando instalas devise podrás notar algunas configuraciones que debemos realizar para que devise funciones correctamente. Lo primero: tener una página como “root” (como página principal). Para ello creamos un controlador: $ rails g controller pages index . Ahora editamos archivos config/routes.rb y agregamos:

root ‘pages#index’

y eliminamos la línea: get 'pages/index'

Te sorprenderás si corres el servidor de rails $ rails s y si vamos a http://localhost:3000

Sí, nuestra página Index es la página por defecto (root)

Pero todavía falta algo para continuar con devise: agregar los mensajes a las vistas. Copiamos el fragmento de HTML que está en consola y lo pegamos en el archivo app/views/layout/application.html.erb

Ahora sí… Creemos nuestros usuarios. Un usuario tendrá los siguientes datos:

  • Nombre
  • Ciudad
  • Bio / Descrip.
  • Blog / URL

Ahora, corremos el generador de devise:

rails g devise user nombre:string ciudad:string bio:text url:string

Nuestro usuario está creado, ahora falta migrar (aplicar los cambios en la base de datos):

rails db:migrate
Resultado en consola de la migración

Y como podrás ver en el archivo db/schema.rb , nuestra base de datos ahora tiene una tabla llamada users con todos los campos que nosotros digitamos y otros que devise usa, como el correo electrónico, la contraseña y demás.