Я только начинаю работу с моим первым веб-приложением Ruby on Rails.У меня есть куча разных моделей, видов, контроллеров и так далее.
Я хочу найти хорошее место для вставки определений действительно глобальных констант, которые применяются ко всему моему приложению.В частности, они применяются как в логике моих моделей, так и в решениях, принимаемых по моим взглядам.Я не могу найти СУХОЕ место для размещения этих определений, где они доступны как для всех моих моделей, так и для всех моих представлений.
Чтобы привести конкретный пример, я хочу постоянную 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, но они на самом деле не кажутся правильными (и, похоже, они тоже не работают)
Нет ли способа определить что-то, что будет доступно какиз моделей и из представлений?Я имею в виду, я знаю, что модели и представления должны быть отдельными, но наверняка в некоторых доменах будут времена, когда им нужно будет ссылаться на одни и те же предметные знания?