Ho appena iniziato con la mia prima webapp Ruby on Rails. Ho un sacco di diversi modelli, viste, controller e così via.
Voglio trovare un buon posto per attaccare le definizioni di costanti veramente globali, che si applicano a tutta la mia app. In particolare, si applicano sia nella logica dei miei modelli, sia nelle decisioni prese nelle mie opinioni. Non riesco a trovare un posto ASCIUTTO per mettere queste definizioni dove sono disponibili sia per tutti i miei modelli sia per tutte le mie viste.
Per fare un esempio specifico, voglio una costante COLOURS = ['white', 'blue', 'black', 'red', 'green']
. Questo è usato ovunque, sia nei modelli che nelle viste. Dove posso definirlo in un solo posto in modo che sia accessibile?
Cosa ho provato:
- Variabili di classe costanti nel file model.rb a cui sono maggiormente associate, ad esempio
@@COLOURS = [...]
. Ma non sono riuscito a trovare un modo sano per definirlo in modo da poter scrivere nei miei punti di vistaCard.COLOURS
piuttosto che qualcosa di simileCard.first.COLOURS
. - Un metodo sul modello, qualcosa del genere
def colours ['white',...] end
- stesso problema. - Un metodo in application_helper.rb: questo è quello che sto facendo finora, ma gli helper sono accessibili solo nelle viste, non nei modelli
- Penso che avrei potuto provare qualcosa in application.rb o environment.rb, ma quelli non sembrano proprio corretti (e nemmeno sembrano funzionare)
Non c'è modo di definire qualcosa che sia accessibile sia dai modelli che dalle viste? Voglio dire, so che i modelli e le viste dovrebbero essere separati, ma sicuramente in alcuni domini ci saranno momenti in cui dovranno fare riferimento alla stessa conoscenza specifica del dominio?