Хранить настройки пользователя в Ruby - PullRequest
0 голосов
/ 03 августа 2011

Где бы вы хранили пользовательские настройки в приложении Rails?

Должен ли я указать это в пользовательской модели или просто использовать serialize

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Вы также можете поместить все настройки в один атрибут и просто сериализовать этот атрибут в модель. Он будет содержать хеш любого количества пользовательских настроек, которые вы хотите. Их будет легко добавлять / удалять по ходу работы.

пример:

Модель пользователя

serialize :settings

get_settings(type => :filter)
end

set_settings(type => :filter, data => {})
end

Таблица пользователей

text settings

Пользовательская строка

:filter: 
    :statuses: 
      - "status 1"
      - "status 2"

:pagination
    :per_page: 20
    :last_viewed_page: 10

Вы можете использовать его так:

set_settings(:pagination, {:per_page => 10, :last_viewed_page => 2})
user_pagination = get_settings(:pagination, {:pagination}
user_pagination[:per_page]
user_pagination[:last_viewed_page]
1 голос
/ 03 августа 2011

Это действительно зависит от вашего приложения. Насколько он велик, будет ли он расти в будущем, сколько там настроек, увеличится ли количество настроек и т. Д.

Если у вас есть только несколько настроек (мой личный лимит 5), вы, вероятно, можете сохранить их в вашей User модели. Плюсы: легко реализовать. Минусы: новые настройки требуют изменений в базе данных, то есть миграций каждый раз, когда вы добавляете новый или меняете существующий.

Если у вас есть больше настроек, и они будут меняться или увеличиваться в количестве, вам, вероятно, будет проще сохранить их в собственной модели. Лучший способ - использовать какое-то существующее хранилище Key-Value или подделать собственное. Pro: Вы можете легко добавить новые настройки или изменить существующие. Минусы: сложнее в реализации, может быть излишним для небольшого приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...