Я тільки починаю свій перший Ruby on Rails webapp. У мене є купа різних моделей, поглядів, контролерів тощо.
Я хочу знайти гарне місце, щоб дотримуватися визначень справді глобальних констант, які застосовуються у всьому моєму додатку. Зокрема, вони застосовуються як у логіці моїх моделей, так і в рішеннях, прийнятих на мою думку. Я не можу знайти жодного місця, де можна поставити ці визначення, де вони доступні як для всіх моїх моделей, так і для всіх моїх поглядів.
Щоб взяти конкретний приклад, я хочу константу COLOURS = ['white', 'blue', 'black', 'red', 'green']
. Це використовується повсюдно, як у моделях, так і у видах. Де я можу визначити його лише в одному місці, щоб воно було доступним?
Що я спробував:
- Постійні змінні класу у файлі model.rb, з якими вони найбільше пов'язані, наприклад
@@COLOURS = [...]
. Але я не міг знайти розумного способу визначити це, щоб я міг писати в своїх поглядах,Card.COLOURS
а не щось подібнеCard.first.COLOURS
. - Метод на моделі, щось на зразок
def colours ['white',...] end
- та сама проблема. - Метод у application_helper.rb - це те, що я зараз роблю, але помічники доступні лише в представленнях, а не в моделях
- Я думаю, що, можливо, я щось спробував у application.rb або environment.rb, але це насправді не здається правильним (і, здається, не працює)
Чи просто немає способу визначити доступне як для моделей, так і для видань? Я маю на увазі, я знаю, що моделі та погляди повинні бути окремими, але, безумовно, в деяких областях буде час, коли вони повинні звернутися до тих же знань, що стосуються конкретного домену?