Base de datos

Configuración de una base de datos

Casi todas las aplicaciones de Rails interactuarán con una base de datos. Puede conectarse a la base de datos configurando una variable de entorno ENV['DATABASE_URL'] o usando un archivo de configuración llamado config/database.yml.

Usando el archivo config/database.yml puede especificar toda la información necesaria para acceder a su base de datos:

development:
      adapter: postgresql
      database: blog_development
      pool: 5

Esto se conectará a la base de datos llamada blog_development usando el adaptador postgresql. Esta misma información puede almacenarse en una URL y proporcionarse a través de una variable de entorno como esta:

ENV['DATABASE_URL'] # =>
"postgresql://localhost/blog_development?pool=5"

El archivo config/database.yml contiene secciones para tres entornos diferentes en los que Rails se puede ejecutar de forma predeterminada:

  • El entorno development se utiliza en su computadora de desarrollo/local a medida que interactúa manualmente con la aplicación.
  • El entorno de test se utiliza cuando se ejecutan pruebas automatizadas.
  • El entorno de production se usa cuando implementa su aplicación para que la use el mundo.

Si lo desea, puede especificar manualmente una URL dentro de su config/database.yml.

development:
    url:  postgresql://localhost/blog_development?pool=5

The config/database.yml file can contain ERB tags <%= %>. Anything in the tags will be evaluated as Ruby code. You can use this to pull out data from an environment variable or to perform calculations to generate the needed connection information.

No tiene que actualizar las configuraciones de la base de datos manualmente. Si observa las opciones del generador de aplicaciones, verá que una de las opciones se llama --database. Esta opción le permite elegir un adaptador de una lista de las bases de datos relacionales más utilizadas. Incluso puede ejecutar el generador repetidamente: cd .. && rails new blog --database=mysql. Cuando confirme la sobrescritura del archivo config/database.yml, su aplicación se configurará para MySQL en lugar de SQLite. A continuación se muestran ejemplos detallados de las conexiones de base de datos comunes.

¿Cómo funciona Fígaro?

Figaro fue escrito para facilitar la configuración segura de aplicaciones Rails.

Los valores de configuración suelen incluir información confidencial. Figaro se esfuerza por ser seguro de forma predeterminada al fomentar una convención que mantiene la configuración fuera de Git.

¿Cómo funciona Fígaro?

Figaro está inspirado en la metodología de la aplicación Twelve-Factor, que establece:

La aplicación de doce factores almacena la configuración en variables de entorno (a menudo abreviadas como env vars o env). Env vars son fáciles de cambiar entre implementaciones sin cambiar ningún código; a diferencia de los archivos de configuración, hay pocas posibilidades de que se registren en el repositorio de código accidentalmente; y, a diferencia de los archivos de configuración personalizados u otros mecanismos de configuración, como las propiedades del sistema Java, son un estándar independiente del idioma y del sistema operativo.

Esto es sencillo en entornos de producción, pero los entornos de desarrollo local a menudo se comparten entre múltiples aplicaciones, lo que requiere múltiples configuraciones.

Figaro analiza un archivo YAML ignorado por Git en su aplicación y carga sus valores en ENV.

Empezando

Agregue Figaro a su Gemfile y bundle install:

¿Que es Ruby?

Ruby es un lenguaje con un balance cuidado. Su creador, Yukihiro “Matz” Matsumoto, mezcló partes de sus lenguajes favoritos (Perl, Smalltalk, Eiffel, Ada y Lisp) para formar un nuevo lenguaje que incorporara tanto la programación funcional como la imperativa.

A menudo ha manifestado que está “tratando de hacer que Ruby sea natural, no simple”, de una forma que se asemeje a la vida real.

Continuando sobre esto, agrega:

Ruby es simple en apariencia, pero complejo por dentro, como el cuerpo humano.

Acerca del crecimiento de Ruby

Desde su liberación pública en 1995, Ruby ha atraído devotos desarrolladores de todo el mundo. En el 2006, Ruby alcanzó reconocimiento masivo, formándose grupos de usuarios activos en las ciudades más importantes del mundo y llenando las capacidades de las conferencias relacionadas a Ruby.

Ruby-Talk, la lista de correo más importante sobre el lenguaje Ruby creció hasta lograr un promedio de 200 mensajes por día en el 2006. Se ha reducido en los últimos años a medida que el tamaño de la comunidad movió la discusión de una lista central a muchos grupos más pequeños.

El índice TIOBE, que mide el crecimiento de los lenguajes de programación, ubica a Ruby entre los diez mejore del ranking mundial. Gran parte del crecimiento se atribuye a la popularidad del software escrito en Ruby, particularmente el framework Ruby on Rails.

Ruby es totalmente libre. No sólo gratis, sino también libre para usarlo, copiarlo, modificarlo y distribuirlo.

Viendo todo como un objeto

Inicialmente, Matz buscó en otros lenguajes para encontrar la sintaxis ideal. Recordando su búsqueda, dijo, “quería un lenguaje que fuera más poderoso que Perl, y más orientado a objetos que Python2”.

En Ruby, todo es un objeto. Se le puede asignar propiedades y acciones a toda información y código. La programación orientada a objetos llama a las propiedades variables de instancia y las acciones son conocidas como métodos. La orientación a objetos pura de Ruby se suele demostrar con un simple código que aplica una acción a un número.

5.times { print "Nos *encanta* Ruby -- ¡es fuera de serie!" }

En muchos lenguajes, los números y otros tipos primitivos no son objetos. Ruby sigue la influencia del lenguaje Smalltalk pudiendo poner métodos y variables de instancia a todos sus tipos de datos. Esto facilita el uso de Ruby, porque las reglas que se aplican a los objetos son aplicables a todo Ruby.

La flexibilidad de Ruby

Ruby es considerado un lenguaje flexible, ya que permite a sus usuarios alterarlo libremente. Las partes esenciales de Ruby pueden ser quitadas o redefinidas a placer. Se puede agregar funcionalidad a partes ya existentes. Ruby intenta no restringir al desarrollador.

Por ejemplo, la suma se realiza con el operador suma (+). Pero si prefieres usar la palabra sumar, puedes agregar un método llamado sumar a la clase Numeric que viene incorporada.

class Numeric
  def sumar(x)
    self.+(x)
  end
end

y = 5.sumar 6
# ahora y vale 11

Los operadores de Ruby son simples conveniencias sintácticas para los métodos. Los puedes redefinir como y cuando quieras.

¿Qué es Rails?

Rails es un marco de aplicación web que se ejecuta en el lenguaje de programación Ruby. Si no tiene experiencia previa con Ruby, encontrará una curva de aprendizaje muy empinada al sumergirse directamente en Rails. Hay varias listas seleccionadas de recursos en línea para aprender Ruby:

Sitio web oficial del lenguaje de programación Ruby
Lista de libros de programación gratuitos
Tenga en cuenta que algunos recursos, si bien son excelentes, cubren versiones anteriores de Ruby y es posible que no incluyan alguna sintaxis que verá en el desarrollo diario con Rails.

Rails es un marco de desarrollo de aplicaciones web escrito en el lenguaje de programación Ruby. Está diseñado para facilitar la programación de aplicaciones web al hacer suposiciones sobre lo que cada desarrollador necesita para comenzar. Le permite escribir menos código mientras logra más que muchos otros lenguajes y marcos. Los desarrolladores experimentados de Rails también informan que hace que el desarrollo de aplicaciones web sea más divertido.

Rails es un software obstinado. Hace la suposición de que hay una “mejor” manera de hacer las cosas, y está diseñado para alentar esa manera y, en algunos casos, para desalentar las alternativas. Si aprende “The Rails Way”, probablemente descubrirá un tremendo aumento en la productividad. Si persiste en traer viejos hábitos de otros lenguajes a su desarrollo de Rails y trata de usar patrones que aprendió en otros lugares, es posible que tenga una experiencia menos feliz.

La filosofía de Rails incluye dos principios rectores principales:

No se repita: DRY es un principio de desarrollo de software que establece que “Cada pieza de conocimiento debe tener una representación autorizada, única e inequívoca dentro de un sistema”. Al no escribir la misma información una y otra vez, nuestro código es más fácil de mantener, más extensible y con menos errores.
Convención sobre configuración: Rails tiene opiniones sobre la mejor manera de hacer muchas cosas en una aplicación web, y se basa de manera predeterminada en este conjunto de convenciones, en lugar de requerir que especifique minucias a través de archivos de configuración interminables.

Creación de un nuevo proyecto de Rails

La mejor manera de leer esta guía es seguirla paso a paso. Todos los pasos son esenciales para ejecutar esta aplicación de ejemplo y no se necesita código ni pasos adicionales.

Siguiendo esta guía, creará un proyecto de Rails llamado blog, un weblog (muy) simple. Antes de que pueda comenzar a crear la aplicación, debe asegurarse de que tiene instalado Rails.

Los ejemplos a continuación usan $ para representar el indicador de su terminal en un sistema operativo similar a UNIX, aunque puede haber sido personalizado para que aparezca de manera diferente. Si está utilizando Windows, su indicador se verá como C:\source_code>.

Instalación de Rails

Antes de instalar Rails, debe verificar que su sistema tenga instalados los requisitos previos adecuados. Éstas incluyen:

  • Ruby
  • SQLite3

Instalación de Rubí

Abra un indicador de línea de comandos. En macOS abra Terminal.app; en Windows, seleccione “Ejecutar” en el menú Inicio y escriba cmd.exe. Cualquier comando precedido por un signo de dólar $ debe ejecutarse en la línea de comando. Verifique que tiene instalada una versión actual de Ruby:

$ rubí --versión
rubí 2.7.0

Rails requiere Ruby versión 2.7.0 o posterior. Se prefiere utilizar la última versión de Ruby. Si el número de versión devuelto es menor que ese número (como 2.3.7 o 1.8.7), deberá instalar una copia nueva de Ruby.

Para instalar Rails en Windows, primero deberá instalar Ruby Installer.

Para obtener más métodos de instalación para la mayoría de los sistemas operativos, visite ruby-lang.org.

Instalación de SQLite3

También necesitará una instalación de la base de datos SQLite3. Muchos sistemas operativos populares similares a UNIX se envían con una versión aceptable de SQLite3. Otros pueden encontrar instrucciones de instalación en el sitio web de SQLite3.

Verifica que esté correctamente instalado y en tu PATH de carga:

$ sqlite3 --versión

El programa debe informar su versión.

Instalación de Rails

Para instalar Rails, use el comando de gem install proporcionado por RubyGems:

development:
adapter: postgresql
database: blog_development
pool: 5

Para verificar que tiene todo instalado correctamente, debería poder ejecutar lo siguiente en una nueva terminal:

$ rails --versión

Si dice algo como “Rails 7.0.0”, está listo para continuar.