2012-01-29 29 views
5

Bu uygulamalar arasında ortak kalıptır ve emin zarif bir çözüm vardır, ama benim yaşam için bir yanıt bulamıyorum olduğum için Strateji. Büyük bir sorun, ne diyeceğimi bilmiyorum. Raylar 3: Sistem bildirimleri

Bir sistemin her kullanıcıya bir zamanlı bildirimler vermek doğru çözüm bulmak için çalışıyorum. Bu kullanıcı bildirimi kabul ettiğinde veya kapattığında, tekrar kişisel olarak görmezler, ancak diğer kullanıcılar bunu kabul edene kadar kullanacaktır.

vb

Açıkçası, bu bu özel bu özel mesajı kabul etti bir bayrak gibi bazı veritabanında yaşamak gerekir, on-board, bakım bildirimleri, yeni özellikler yaparken bu yaygındır, fakat öyle görünüyor Bunun gibi, bunları sunmak için iyi düşünülmüş bir plan olmadan hızlı ve ağır bir hal alabilir.

cevap

2

benzer bir soruya my answer bakınız.

Mesajlar tefrika dizi olarak benim kullanıcı modeli yaşıyor. Bu şekilde yeni mesajlar için #push gibi basit dizi yöntemlerini kullanabilirim. Kullanıcılar sadece tek tek mesajları iptal etmek veya #clear hepsini iptal etmek için #delete_at kullanarak, kendilerine özgü mesajları ile uğraşmak.

yayın bildirimleri için, siz iğrenç şeyler yapabileceğini olarak: sık kullanılmayan eğer bir anlaşma büyük değil,

User.all.map {|x| x.messages.push "You have been notified." ; x.save } 

.