Tengo algunos datos que quiero almacenar en algún lugar de mi aplicación Rails porque los utilizo para generar campos de formulario, verificar un formulario enviado para garantizar que sus valores sean válidos, etc. Básicamente, quiero los datos en un lugar porque lo uso en varios lugares.valores constantes en Rails
Anteriormente, estaba definiendo un método initialize
en mi controlador e inicializando variables de instancia dentro de ese método, p. Ej. @graph_types = ['bar', 'line']
. Esto parecía una mala idea porque en realidad se usaba todo (initialize
) para (inicializar esos valores) y las variables de instancia podrían cambiarse más tarde, lo que no quiero.
Ahora, defino constantes fuera de cualquier método en mi controlador, en la parte superior después de mis filtros, y los congelo, p. GraphTypes = ['bar', 'line'].freeze
.
No quería almacenar tales datos en un archivo de configuración porque entonces tendría que hacer un seguimiento de un archivo adicional, leer en el archivo y analizarlo, etc. No quería almacenar esta información en la base de datos porque eso parece exagerado; No necesito hacer ninguna loca búsqueda de tipo LEFT OUTER JOIN que combine tipos de gráficos disponibles con otra de mis constantes, digamos Themes = ['Keynote', 'Odeo', '37 Signals', 'Rails Keynote'].freeze
. No quería almacenar los datos en environment.rb porque estos datos solo se refieren a un controlador en particular.
Teniendo en cuenta todo esto, ¿estoy hablando de este "camino de Ruby"?
¿Dónde poner la clase? ¿Lo localizas con tus modelos? – ahsteele
Bueno, lo pongo en el directorio de modelos, pero probablemente sería mejor ponerlo en lib. – user37011