Как бы вы разработали / внедрили модель уведомлений? - PullRequest
0 голосов
/ 16 ноября 2010

У меня есть модель пользователя. Приложение зарегистрировало пользователей и зарегистрированных художников. Пользователь может быть идентифицирован как художник или зарегистрированный пользователь с помощью модели ролей.

На моей странице аккаунта есть раздел уведомлений.

Пользовательские уведомления отличаются от уведомлений Исполнителя.

Например. Зарегистрированные исполнители могут устанавливать следующие уведомления:

  • Напишите мне, когда пользователю понравилась моя картина
  • Напишите мне, когда пользователь прокомментирует мою картину

Зарегистрированный пользователь может установить следующее уведомление:

  • Пишите мне, когда мои любимые художники публикуют новые картины

Пользователь и художник могут установить следующее уведомление:

  • Напишите мне, когда кто-то отправит мне личное сообщение

Как бы вы пошли на разработку этого?

1 Ответ

0 голосов
/ 16 ноября 2010

образец для подражания? Я не настолько специализирован в ролях, и остановите меня, если я ошибаюсь, но я бы, вероятно, просто назначил role как атрибут модели user. Тогда я бы позволил всем пользователям иметь возможность получать все уведомления, а в haml / html различать то, что они видят, исходя из их роли.

Итак, ваш ХАМЛ сказал бы:

- if current_user.role?(artist)
  = f.label 'Email me when a User likes my painting'
  = f.select :notification_option
- if current_user.role?(user)
  = f.label 'Email me when my favorite artists posts new paintings'
  = f.select :notification_option
= f.label 'Email me when someone sends me a private message'
= f.select :notification_option
...