Мне любопытно, есть ли драгоценность или способ настройки для каждой модели.Например, пользовательские настройки.
Я хотел бы иметь значения по умолчанию для каждой модели (скажем, атрибута класса), но определяемые (для другой таблицы! Я не хочу сериализуемого поля в моей модели).
Например:
user = User.find(1)
user.settings.newsletter # => true
Была бы модель для UserSetting, которая имеет схему key => string, value => string, type => string (Boolean, Date, String и т. Д....)
ОБНОВЛЕНИЕ:
Вот мое решение в конце.Поддерживает типы значений для настроек (Boolean, Time и т. Д.)
def setting(key, whiny=true)
s = user_settings.where(:key => key).first
if s
case s.value_type
when 'Boolean'
s.value.to_i == 1
when 'Time'
Time.parse(s.value)
else
s.value
end
else
if whiny
raise NameError, "Setting key #{key} does not exist for #{name}."
else
nil
end
end
end