Recapitulación: Ruby on Rails
Clase 13 de 29 • Curso de Ruby on Rails: POO 2018
Recapitulación: Ruby on Rails
¿Qué fue lo que aprendimos?
Rails te da la posibilidad de crear un prototipo funcional de un proyecto y publicarlo en internet en sólo un par de horas. Con sólo un par de líneas puedes tener una mini aplicación funcionando ya que cuenta con un conjunto de herramientas que permiten crear aplicaciones complejas y escalables a niveles enterprise con equipos de programación relativamente pequeños.
Initial Setup
Crear una nueva aplicación se logra con tan sólo una instrucción en la terminal:
rails new APP_NAME –-database=postgresql && cd APP_NAME
Con la finalidad de poder hacer el deploy a Heroku, utilizamos la database PostgreSQL. Si decides utilizar SQL, los aspectos técnicos dentro de Rails no representan ningún cambio salvo por el archivo database.yml.
Una vez dentro del directorio de nuestra aplicación recién creada, siempre deberás correr el comando bundle para instalar las gemas (librerías) de la aplicación:
bundle install
En este punto estamos casi listos para correr por primera vez nuestra aplicación, pero antes debemos crear la base de datos que vamos a usar durante el desarrollo de nuestra aplicación en Rails. Primero tenemos que editar nuestro archivo de database, que encuentras en config > database.yml para indicarle a Postgres el user, password, el nombre de las bases de datos que vamos a requerir así como el host donde va a alojarse nuestra base de datos.
default: &default adapter: postgresql encoding: Unicode pool: 5
Primero estamos definiendo los valores por defecto. Esta configuración es general para todos los ambientes.
Después tendremos que configurar por separado las bases de datos de los diferentes ambientes que estaremos manejando dentro de Rails. Recuerda que Rails ya cuenta con un manejo de tests, así que también incluiremos la configuración para nuestra base de datos del ambiente Test.
development: adapter: postgresql encoding: Unicode database: platziblog_dev username: postgres password: mipassword host: localhost #opcional port: 5432 pool: 5 #opcional test: adapter: postgresql encoding: Unicode database: platziblog_test username: postgres password: mipassword host: localhost port: 5432 pool: 5
Podemos ver que las configuraciones de Test y Development son muy similares, salvo por el nombre de la base de datos que se creará para su respectivo ambiente. Es recomendable hacer la distinción de los nombres con una nomenclatura similar para poder diferenciar fácilmente entre una y otra.
Por último configuramos la base de datos para el ambiente de producción:
production: adapter: postgresql encoding: Unicode database: platziblog_prod username: postgres password: <%= ENV['PLATZIBLOG_DATABASE_PASSWORD'] %> host: localhost port: 5432 pool: 5
En esta configuración estamos definiendo con una variable de entorno la contraseña de nuestra aplicación. Esta variable deberá vivir en un archivo con extensión ENV y deberás definirla de la siguiente manera:
PLATZIBLOG_DATABASE_PASSWORD=mipassword
El archivo ENV ya viene excluido de nuestro repositorio gracias a Rails 5, así que no te preocupes al hacer push a tu repositorio pues tus variables de entorno no quedarán expuestas.
Te recomiendo leer este artículo de Heroku (inglés) en donde se profundiza más acerca de las configuraciones de este archivo.
Y ahora sí, una vez definiendo la información que Rails necesita para saber a qué base de datos se va a conectar, quién se conecta (user y password) y a través de qué adaptador (postgres), ya podemos correr el comando para crear las bases de datos:
rake db:setup
Este comando no solamente crea nuestra base de datos, también configura las conexiones necesarias para empezar a armar el esquema de nuestra base de datos cada que corramos:
rake db:migrate
Iniciaremos nuestro servidor para empezar el desarrollo con el comando:
rails s
TIP: Para conocer todos los comandos que puedes correr para una aplicación en Ruby on Rails, si escribes “rails” tendrás un detalle completo de los comandos y sus abreviaciones.
Esta es la lista completa de comandos que verás al finalizar el curso. Estos comandos se estarán actualizando cada vez que instalemos alguna gema que contenga comandos propios para configurar dentro de nuestra aplicación.
The most common rails commands are: generate Generate new code (short-cut alias: "g") console Start the Rails console (short-cut alias: "c") server Start the Rails server (short-cut alias: "s") test Run tests except system tests (short-cut alias: "t") test:system Run system tests dbconsole Start a console for the database specified in config/database.yml (short-cut alias: "db") new Create a new Rails application. "rails new my_app" creates a new application called MyApp in "./my_app" All commands can be run with -h (or --help) for more information. In addition to those commands, there are: Rails: console credentials:edit credentials:show dbconsole destroy encrypted:edit encrypted:show generate new runner secrets:edit secrets:setup secrets:show server test version Rake: about active_storage:install app:template app:update assets:clean[keep] assets:clobber assets:environment assets:precompile autoprefixer:info cache_digests:dependencies cache_digests:nested_dependencies ckeditor:nondigest db:create db:drop db:environment:set db:fixtures:load db:migrate db:migrate:status db:rollback db:schema:cache:clear db:schema:cache:dump db:schema:dump db:schema:load db:seed db:setup db:structure:dump db:structure:load db:version dev:cache initializers log:clear middleware notes notes:custom paperclip:clean paperclip:find_broken_attachments paperclip:refresh paperclip:refresh:metadata paperclip:refresh:missing_styles paperclip:refresh:thumbnails restart routes secret stats test test:db test:system time:zones[country_or_offset] tmp:clear tmp:create yarn:install