Я только начинаю с моего первого Ruby on Rails webapp. У меня есть куча разных моделей, просмотров, контроллеров и т.д.
Я хочу найти хорошее место для определения определений действительно глобальных констант, которые применяются во всем моем приложении. В частности, они применяются как в логике моих моделей, так и в решениях, принятых в моих взглядах. Я не могу найти какое-либо СУХОЕ место для размещения этих определений там, где они доступны как для всех моих моделей, так и во всех моих представлениях.
Чтобы взять конкретный пример, я хочу константу COLOURS = ['white', 'blue', 'black', 'red', 'green']
. Это используется повсюду, как в моделях, так и в представлениях. Где я могу определить его в одном месте, чтобы он был доступен?
Что я пробовал:
- Константные переменные класса в файле model.rb, с которыми они наиболее связаны, например
@@COLOURS = [...]
. Но я не мог найти разумный способ определить его, чтобы я мог писать в своих представленияхCard.COLOURS
, а не что-то вроде kludgy likeCard.first.COLOURS
. - Метод на модели, что-то вроде
def colours ['white',...] end
- та же проблема. - Метод в application_helper.rb - это то, что я делаю до сих пор, но помощники доступны только в представлениях, а не в моделях
- Я думаю, что я, возможно, пробовал что-то в application.rb или environment.rb, но на самом деле это не кажется правильным (и они, похоже, тоже не работают).
Нет ли способа определить что-либо доступное как из моделей, так и из представлений? Я имею в виду, я знаю, что модели и представления должны быть раздельными, но, конечно же, в некоторых доменах они будут нуждаться в том, чтобы ссылаться на одни и те же знания домена.