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