Thursday, January 24, 2013

Rails: Configuración del entorno específico


En este post quiero comentar un plugin interesante para la configuración de un entorno específico en un proyecto Rails.

Se añade al GemFile la siguiente línea: gem "rails_config". RailsConfig ayuda a administrar la configuración del entorno específico. Lo único que tenemos que hacer es bundle install. Una vez que hagamos esto ejecutamos la siguiente instrucción: rails g rails_config:install

 En nuestra aplicación vamos a tener las siguientes carpetas:
config/settings.yml
config/settings/development.yml
config/settings/production.yml
config/settings/test.yml


Es decir vamos a tener un archivo YAML por cada uno de los entornos de nuestra aplicación y un archivo común para todos los entornos que es el settings.yml; es decir será visible por todos los entornos. Dependiendo del entorno en el que tengamos levantada la aplicación leerá de un fichero u otro.

La instrucción que ejecutamos antes creará un archivo en config/initializers, rails_config.rb, donde se define el nombre de la constante a través de la cual vamos a acceder a los parámetros definidos para cada entorno. Por defecto se llama Settings. Esta constante se puede cambiar por la que consideremos oportuna.



Ejemplo

Imaginemos que tenemos definido lo siguiente en cualquiera de los archivos mencionados:

size: 2
section:
  size: <%= 1 + 2 + 3 %>
  servers: [ {name: yahoo.com}, {name: amazon.com} ]
 
Para poder acceder a estas variables desde cualquier parte de nuestra aplicación haríamos lo siguiente:

Settings.size   # => 2
Settings.server # => google.com
Settings.section.size # => 6
Settings.section.servers[0].name # => yahoo.com
Settings.section.servers[1].name # => amazon.com

No comments:

Post a Comment