У меня есть некоторые данные, которые я хочу хранить где-то в моем приложении Rails, потому что я использую его для создания полей формы, проверки представленной формы, чтобы убедиться, что ее значения действительны и т. Д. В принципе, я хочу, чтобы данные в одно место, потому что я использую его в нескольких местах.постоянные значения в Rails
Раньше я определял метод initialize
в моем контроллере и инициализацию переменных экземпляра в этом методе, например. @graph_types = ['bar', 'line']
. Это казалось плохой идеей, потому что на самом деле все initialize
использовалось для (инициализации этих значений), и переменные экземпляра могли быть изменены позже, чего я не хочу.
Теперь я определяю константы вне любого метода в моем контроллере, вверху вверху после моих фильтров, и я замораживаю их, например. GraphTypes = ['bar', 'line'].freeze
.
Я не хотел хранить такие данные в файле конфигурации, потому что тогда мне пришлось бы отслеживать дополнительный файл, читать в файле и анализировать его и т. Д. Я не хотел хранить эти данные в база данных, потому что это похоже на излишний; Мне не нужно делать сумасшедшие запросы типа LEFT OUTER JOIN, объединяющие доступные типы графиков с другими моими константами, например Themes = ['Keynote', 'Odeo', '37 Signals', 'Rails Keynote'].freeze
. Я не хотел хранить данные в environment.rb, потому что эти данные относятся только к определенному контроллеру.
Принимая во внимание все это, собираюсь ли я об этом «рубиновом пути»?
Где вы положили класс? Вы находите его в своих моделях? – ahsteele 2009-10-01 02:22:38
Ну, я помещаю его в каталог моделей, но, вероятно, лучше поместить его в lib. – user37011 2009-10-02 14:58:35