Rezerwacja - limit użytkowników

https://github.com/regedarek/ekorezerwacja <-- to mój projekt

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.

https://github.com/nono/acts_as_list chociaż nie wiem czy dokładnie zrozumiałem co chciałbyś zrobić.

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

Zainstalowałem act_as_list i ustawiłem
has_many :seats, :order => “position”
acts_as_list :scope => :user

Niestety nie udaje mi się posortować Userów wg updated_at. Możecie mi pomóc jak używać acts_as_list?

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