Publicado el 11 de Febrero del 2019
2.466 visualizaciones desde el 11 de Febrero del 2019
843,1 KB
79 paginas
Creado hace 5a (18/10/2018)
Escola Tècnica Superior d’Enginyeria Informàtica
Universitat Politècnica de València
Aplicación Web de bases de datos usando el
Framework Ruby on Rails
TRABAJO FIN DE GRADO
Grado en Ingeniería Informática
Autor: Daniel Arastey Aroca
Tutor:
José Vicente Busquets Mataix
Curso 2017-2018
Resum
Aquest treball està centrat en la creació d’una plataforma autoallotjada de
blogs personals. Aquesta plataforma permet que el seu usuari comparteixi pú-
blicament continguts de tot tipus, i si així ho desitja, que els seus lectors puguin
compartir les seues opinions a la secció de comentaris de cada entrada. Aquest
projecte constitueix un senzill exemple de com construïr una aplicació mitjan-
çant el framework Ruby on Rails, a més de mostrar com es realitzen les operacions
bàsiques sobre bases de dades relacionals amb aquesta ferramenta.
Paraules clau: Ruby, Rails, bases de dades, desenvolupament web, MVC
Resumen
Este trabajo está centrado en la creación de una plataforma autoalojada de
blogs personales. Esta plataforma permite que su usuario comparta de forma pú-
blica contenidos de todo tipo, y si así lo desea, que sus lectores puedan mostrar
sus opiniones en la sección de comentarios de cada entrada. Este proyecto consti-
tuye un sencillo ejemplo de cómo construir una aplicación mediante el framework
Ruby on Rails, además de mostrar cómo se realizan las operaciones básicas sobre
bases de datos relacionales con dicha herramienta.
Palabras clave: Ruby, Rails, bases de datos, desarrollo web, MVC
Abstract
This thesis is focused on the creation of a self-hosted personal blogging plat-
form. This platform allows its user to share publicly contents of any kind, and
if they want to, its readers will be able to show their opinions in the comments
section of every post. This project represents a simple example of how to build
an application using the Ruby on Rails Framework, as well as show how basic
operations on relational databases are performed with said tool.
Key words: Ruby, Rails, databases, web development, MVC
III
Índice general
V
IX
1
1
1
2
2
2
3
3
4
4
5
5
5
5
6
7
7
7
8
8
8
8
9
9
10
11
11
12
12
14
15
15
16
17
17
17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
Índice general
Índice de figuras
1 Introducción
.
.
.
.
. .
. .
.
1.1 Motivación .
.
1.2 Objetivos .
.
1.3 Estructura de la memoria .
.
.
.
1.3.1 Nota acerca de las imágenes .
.
1.4 Agradecimientos
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 El lenguaje de programación Ruby
.
.
.
2.1 Características .
.
2.2 Software en Ruby relevante .
2.3 Las gemas de Ruby .
.
.
3 El framework Ruby on Rails
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.1
3.2 Ruby on Rails .
¿Qué es un framework?
.
.
.
3.2.1 Resumen técnico .
.
.
.
3.3 El patrón Modelo-Vista-Controlador .
.
.
.
.
.
.
.
.
.
.
.
3.4.1 La clase ActiveRecord .
3.4.2 La clase ActionController
3.4.3 La clase ActionView .
.
.
.
.
3.4 Rails y el patrón MVC .
.
3.3.1 Modelo .
3.3.2 Vista .
.
.
3.3.3 Controlador .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Base de datos: MariaDB
.
.
4.1 Definición .
. .
4.2 Características .
5 Entorno de desarrollo
5.1 El IDE: Atom . .
.
.
5.2 El sistema de control de versiones: Git
.
.
.
.
.
.
.
.
.
.
.
.
5.3 Las hojas de estilo: Bootstrap .
.
5.4 Presentación de texto: Markdown .
.
5.5 Comentarios: Disqus .
5.6 Correo: SendGrid .
.
.
5.2.1 Acerca de Git
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 La aplicación, análisis
6.1 Análisis de requisitos .
6.2 Casos de uso . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
V
VI
ÍNDICE GENERAL
6.3 Modelado de la aplicación .
.
.
.
.
.
.
.
.
.
.
.
.
7 La aplicación, desarrollo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
7.1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7.2.1
7.2 Definición del modelo inicial .
.
Instalación .
Inicio del proyecto .
7.3 Creación de controladores .
.
7.4 Rutas .
.
7.5 Creación de vistas .
.
Instalación de las herramientas básicas e inicio .
.
7.1.1
.
.
7.1.2
.
.
7.1.3 Configuración de la base de datos
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción de datos de prueba .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7.5.1 La gema Summarize .
7.5.2 El índice de posts
.
.
7.5.3 Vistas adicionales para posts .
.
.
.
.
.
.
.
7.9 Aplicación de estilos con Bootstrap .
.
7.10 Presentación de contenido .
.
.
7.11 Comentarios .
. .
7.12 Configuración . .
.
.
.
.
.
7.13 Feed RSS .
7.6 Gestión de usuarios .
.
7.7 Mailer y reinicio de contraseñas .
.
.
.
.
.
7.7.1 Mailer .
.
7.7.2 Reinicio de contraseñas .
.
.
.
.
7.8.1 Controlador .
7.8.2 Vistas .
.
7.8 Categorías .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8 La aplicación, despliegue
.
.
.
.
.
.
.
.
.
.
Instalación de dependencias .
.
.
8.2.1 Ruby y Rails .
.
8.2.2 MariaDB .
.
.
8.2.3 Otras dependencias .
.
.
Instalación de la aplicación .
.
.
8.1 Elección del servidor e instalación inicial .
.
8.2
.
.
.
.
.
.
.
.
.
.
.
.
8.4.1 Configuración de arranque automático .
.
8.4.2
8.4.3 Cifrado con Let’s Encrypt
.
Instalación y configuración de NGINX .
.
8.3
8.4 Despliegue público .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9 Conclusiones
9.1 Futuras mejoras .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Bibliografía
Apéndice
A Código fuente
A.1 app/controllers .
.
.
.
.
.
.
.
.
.
A.1.1 admin_controller.rb .
.
.
A.1.2 application_controller.rb .
A.1.3 categories_controller.rb .
.
.
A.1.4 password_resets_controller.rb .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
19
21
21
21
22
23
24
26
26
28
29
30
30
31
31
34
34
35
37
37
38
38
41
42
43
44
47
47
48
48
48
49
49
50
51
51
53
55
55
57
59
59
59
59
59
60
ÍNDICE GENERAL
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
A.2 app/mailers .
A.3 app/models .
.
.
. .
. .
A.1.5 posts_controller.rb .
A.1.6 sessions_controller .
A.1.7 users_controller.rb .
.
.
A.3.1 category.rb .
.
A.3.2 post.rb .
.
A.3.3 user.rb .
.
.
.
.
.
.
A.2.1 application_mailer.rb .
.
A.2.2 user_mailer.rb .
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
A.5.1 initializers/application_controller_renderer.rb . . . . . . . .
. . . . . . . . .
A.5.2 initializers/junablog.erb .
A.5.3 initializers/mail.erb .
.
. . . . . . . . .
. . . . . . . . .
.
.
A.5.4 database.yml .
. . . . . . . . .
.
.
A.5.5 junablog.yml .
A.5.6 routes.rb .
.
.
.
. . . . . . . . .
. . . . . . . . .
.
.
.
. .
. . . . . . . . .
.
.
.
.
. . . . . . . . .
.
.
.
.
.
.
. . . . . . . . .
A.6 db .
.
.
.
A.7 Raíz del proyecto .
.
A.7.1 Gemfile .
A.6.1 seeds.rb .
A.4 app/views .
.
A.5 config .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Comentarios de: Aplicacion web de bases de datos usando Ruby on Rails (0)
No hay comentarios