У меня есть некоторые данные, которые я хочу сохранить где-нибудь в своем приложении Rails, потому что я использую их для генерации полей формы, проверки отправленной формы, чтобы убедиться, что ее значения действительны, и т. Д. В основном, я хочу, чтобы данные были в одном месте, потому что я использовать его в нескольких местах.
Ранее я определял метод initialize
в своем контроллере и инициализировал переменные экземпляра в этом методе, например, @graph_types = ['bar', 'line']
. Это казалось плохой идеей, потому что на самом деле это все, что initialize
использовалось для (инициализации этих значений), а переменные экземпляра могли быть изменены позже, чего я не хочу.
Теперь я определяю константы вне любого метода в моем контроллере, прямо вверху после моих фильтров, и замораживаю их, например. GraphTypes = ['bar', 'line'].freeze
.
Я не хотел хранить такие данные в конфигурационном файле, потому что тогда мне пришлось бы отслеживать дополнительный файл, читать его, анализировать и т. Д. Я не хотел сохранять эти данные в база данных, потому что это кажется излишним; Мне не нужно делать никаких сумасшедших запросов типа LEFT OUTER JOIN, комбинирующих доступные типы графов с другой из моих констант, скажем Themes = ['Keynote', 'Odeo', '37 Signals', 'Rails Keynote'].freeze
. Я не хотел хранить данные в environment.rb, потому что эти данные относятся только к определенному контроллеру.
Учитывая все это, я пойду по этому "Рубиновому пути"?