Meridian312: хранить и изменять, для одной сессии, для одного реквеста, для одного инстанса приложения? Для чего ?
Если хранить постоянно, то только в базе. Создаете какую-нибудь таблицу Settings и туда все кладете
Meridian312: какая цель? Какие причины нежелания хранить в базе (база создана для хранения) ?
В yml и initializers обычно хранят настройки, которые если и меняются, то вручную в коде.
Предположим, сценарий, мне нужно во всех views выводить некое сообщение, оно может быть отрегулированно позже администратором, я просто посчитал нерациональным иметь таблицу с несколькими записями или даже одной или спокойно стандартно?
Meridian312: не думайте о преждевременной оптимизации. Сейчас сообщение одно, потом станет 10, потом 100. Просто придумайте, как адекватно назвать и использовать эту сущность и храните в базе спокойно (например, GreetingMessage name:string body:text)
Meridian312: А где еще? Но жестко привязывать ваши данные к колонкам таблицы не стоит, лучше множество записей (param, value) в таблице settings, и гибче и вам психологически проще т.к. записей много :)
j_wayne: Хранение в БД имеетодин огромный минус - нахрена мне при деплое делать дамп базы?) Для этого данные выносятся в конфиг файлы, достаются в инициализаторах и хранятся в синглтон классах, не надо тут php way продвигать в массы
Able1991: читайте внимательнее - "Данные в одном экземпляре и могут изменяться"
То о чем вы говорите - конфигурационные параметры и обычно для них применяется configatron.
module MyAmazingModule
def self.super_key
@sk
end
def self.super_key= k
@sk = k
end
end
И все, без модели, без кеша, без говнкодинга, все хранится в памяти и редактируется, нормально расширяется и деплоится.
То что вы предлагаете - Сделать модель, уйти от Rails/ruby way и все равно потом закешировать и хранить в памяти - логики ноль, идите плагины для вордпресса клепайте, там всем на это похер
Able1991
1) предлагаю вам сменить тон на более спокойный и не отвлекаться на побочные темы
2) метаданные - это данные приложения, поэтому логично хранить их в первичном хранилище (в данном случае БД)
3) как ваш подход работает в кластере?