Bijuterie rubin pentru a gestiona starea de citire / necitire a obiectelor ActiveRecord – si este rapid.
Caracteristici
- Gestioneaza inregistrarile necitite pentru tot ceea ce doriti sa citeasca cititorii (de exemplu, utilizatorii) (cum ar fi mesaje, documente, comentarii etc.)
- Suporta marcarea ca citita pentru a marca o singura inregistrare ca citita
- Suporturi marcheaza toate ca citite pentru a marca toate inregistrarile ca citite intr-un singur pas
- Va ofera un domeniu de aplicare pentru a obtine inregistrarile necitite pentru un anumit cititor
- Are nevoie de un singur tabel suplimentar de baze de date
- Cel mai important: Performanta excelenta
Cerinte
- Ruby 2.6 sau mai nou
- Rails 4.0 sau mai nou (inclusiv Rails 6)
- MySQL, PostgreSQL sau SQLite
- Are nevoie de un camp de marcare a timpului in modelele dvs. (cum ar fi created_at sau updated_at) cu un index de baza de date pe acesta
Jurnal de schimbari
https://github.com/ledermann/unread/releases
Instalare
Pasul 1: adaugati acest lucru la fisierul dvs. Gem:
si fugi
Pasul 2: Generati si executati migrarea:
Faceti upgrade la versiunile anterioare
Daca faceti upgrade de la o versiune mai veche a acestei bijuterii, ar trebui sa cititi notele de actualizare.
Utilizare
viendo como se follan a mi mujer sin bragas en la calle
zofilia porno rspañol
videos de zofilia incestos gays
española follando videos de lucio saints
incestos lesbicos recopilacion pajas
mujer masturbandose venezolanas desnudas
mujeres normales desnudas española viciosa
tetona amateur forzadas a follar
peliculas porno gay españolas jovencitas pilladas masturbandose
sexo maduras españolas madre española follando con su hijo
porno obligado shemalehd
porno maduras en español vidio pirno
super tetudas maduras lesbianas tetonas
mamada a dos bocas abuela enculada
triple anal pareja follando en la playa
xxx gratis en español xxxgay
swingers españoles incestos jovencitas
follando en casa mujeres fornicando
porno amateur hd bbw abuelas
abuelas porno españolas madres que se follan a sus hijos
mark_as_read! for: user1 User.have_not_read (message1) # => [user2] ## Obtineti utilizatori care au citit un anumit mesaj User. have_read (message1) # => [user1] message1.mark_as_read! for: user2 User.have_read (message1) # => [user1, user2] Message.mark_as_read! : all, for: user1 User.have_not_read (message1) # => [] User.have_not_read (message2) # => [user2] User.have_read (message1) # => [user1, user2] User.have_read (message2) # => [user1] ## Obtineti toti utilizatorii, inclusiv starea lor de citire pentru un anumit mesaj users = User.with_read_marks_for (message1) # => [user1, user2] users [0] .have_read? (message1) # => true users [ 1] .have_read? (Message2) # => false # Optional: Curatarea markerilor inutili # Faceti acest lucru intr-o lucrare cron o data pe zi Message.cleanup_read_marks!
Obtinerea statisticilor citite / necitite printr-o relatie
Folosind with_read_marks_for aici este cheia. Foloseste o singura interogare si se asigura ca urmatoarele necitite? invocatiile folosesc rezultatul primei interogari.
Cum functioneaza?
Ideea principala a acestei bijuterii este de a gestiona o lista de articole citite pentru fiecare cititor dupa un anumit timestamp.
Bijuteria defineste un scop care face o INREGISTRARE STANGA la aceasta lista, astfel incat aplicatia dvs. sa poata obtine elementele necitite intr-un mod performant. Desigur, alte scopuri pot fi combinate.
Se va asigura ca lista articolelor citite nu va creste prea mult:
- Daca un utilizator foloseste „marcati toate ca citite”, lista sa va fi stearsa si marcajul de timp este setat la ora curenta.
- Daca un utilizator nu foloseste niciodata „marcati toate ca citite”, lista va creste si va creste odata cu fiecare articol pe care il citeste. Dar exista ajutor: aplicatia dvs. poate utiliza o metoda de curatare care elimina elementele de lista inutile.
In general, aceasta bijuterie poate fi utilizata pentru date mari. Va rugam sa aruncati o privire la interogarile SQL generate, iata un exemplu:
Interogare generata:
Sugestie: ar trebui sa adaugati un index de baza de date pe messages.created_at.
Copyright (c) 2010-2021 Georg Ledermann si colaboratorii, eliberat sub licenta MIT








