Witam,
zainteresowało mnie dodanie takiej funkcji do systemu rezerwacji: każdy event ma limit miejsc, także nie można dodać kolejnego miejsca po wyczerpaniu limitu
bedzie to zrobione za pomocą:
def validate
if event.seats.size >= event.limit_event
errors.add_to_base("Brak miejsc")
end
Jednak chciałbym też dodać taką rzecz: użytkownik klika REZERWACJA i system sprawdza czy w poprzednium evencie było user_id jeżeli tak dodaje go na koniec kolejki, jeżeli go nie było na początek i jeżeli wyczerpuje się limit miejsc to wypycha tych użytkowników, kŧórzy brali udział w poprzednim evencie poza listę.
Czy jest szansa w jakiś prosty sposób to napisać w railsach, macie jakieś podpowiedzi?
Największy problem wydaje mi się z tym wypychaniem użytkowników.
Po prostu potrzebujesz jakiejś struktury która uznaje kolejność, kolejność zapisów masz z pola created_at, sortujesz po nim. Tym co chcesz pchnąć na koniec robić touch na tym polu + pol updated_at. Sprawdzić mozęsz dowolnie, to nie problem, jakiś before_validation filter, coś w tym stylu
masz sortować według pozycji, pozycję zmieniasz na różne sposoby. masz tam pewnie jakieś move_up itp pamiętam już sporo tego nie używałem. Ale nie updated_at a position cię interesuje