Witam,
Powoli czuję się jak spammer, bo zakładam tyle wątków, ale cóż… poprostu się uczę
Mam takie pytanie:
Chciałbym, aby można było oddawać głosy na użytkownika (1-10) - mam modele User oraz ratings. Każdy użytkownik może oddać tylko jeden głos- to jest do ogarnięcia sprawa - jednak stwierdziłem, że przy większej ilości głosów niezbyt wydajne będzie liczenie ilości głosów oraz średniej (trzebaby zebrać wszystkie rekordy dla użytkownika, i z tego liczyć średnią, oraz zliczać rekordy, by wiedzieć ile tych ocen jest) zatem stwierdziłem, że wydajniej będzie dodać 2 pola w tabeli users: rating i rating_count - pierwsza będzie przechowywać średnią, druga ilość ocen - przy dodaniu nowej oceny policzenie średniej będzie dużo prostsze niż przy wcześniejszym założeniu - mam jednak pytanie, w jaki sposób utworzyć coś takiego (dokładniej chodzi mi o to, jak po dodaniu rekordu ustawić nowy rating_count i poprawić średnią) (musiałby istnieć jakiś callback dla modelu, ale wiki nie bardzo wie cokolwiek na ten temat)
Polecam:
http://apidock.com/rails/ActiveRecord/Callbacks
i
http://apidock.com/rails/ActiveRecord/Base/update_counters/class
A ja proponuje irc://irc.freenode.net/#rubyonrails.pl zamiast zakladania tysiaca watkow