Estou apenas começando com meu primeiro aplicativo da web Ruby on Rails. Eu tenho vários modelos, visualizações, controladores e assim por diante.
Estou querendo encontrar um bom lugar para definir definições de constantes verdadeiramente globais que se apliquem a todo o meu aplicativo. Em particular, eles se aplicam tanto na lógica dos meus modelos quanto nas decisões tomadas em meus pontos de vista. Não consigo encontrar nenhum lugar DRY para colocar essas definições em que estejam disponíveis para todos os meus modelos e também para todas as minhas visualizações.
Para dar um exemplo específico, quero uma constante COLOURS = ['white', 'blue', 'black', 'red', 'green']
. Isso é usado em todo o lugar, nos modelos e nas visualizações. Onde posso defini-lo em apenas um local para que seja acessível?
O que eu tentei:
- Variáveis de classe constante no arquivo model.rb às quais estão mais associadas, como
@@COLOURS = [...]
. Mas não consegui encontrar uma maneira sensata de defini-lo para que eu possa escrever em meus pontos de vistaCard.COLOURS
vez de algo parecido com um desastreCard.first.COLOURS
. - Um método no modelo, algo como
def colours ['white',...] end
- o mesmo problema. - Um método no application_helper.rb - é o que estou fazendo até agora, mas os auxiliares só estão acessíveis nas visualizações, não nos modelos
- Acho que posso ter tentado algo no application.rb ou environment.rb, mas esses não parecem realmente corretos (e também não parecem funcionar)
Não existe apenas uma maneira de definir algo que possa ser acessado a partir de modelos e de visualizações? Quero dizer, eu sei que modelos e visualizações devem ser separados, mas certamente em alguns domínios haverá momentos em que eles precisarão se referir ao mesmo conhecimento específico de domínio?