Я только начинаю с моим первым веб-приложением 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, но это не совсем верно (и они тоже не работают)
Нет ли способа определить что-либо доступное как из моделей, так и из представлений? Я имею в виду, я знаю, что модели и представления должны быть отдельными, но наверняка в некоторых доменах будут времена, когда им нужно ссылаться на одни и те же предметные знания?