Limitowanie kolekcji

Witam,

Zakładając ze obiekt osoba ma listę np. ulubionych fimów a ta lista jest naprawdę spora i chcemy pobrać tylko 10.
Normalnie użyłbym obiekt.filmy aby dostać się do listy. Jak powinno pobierać się taką listę gdy jest ona długa i chcemy tak jak wyżej, np tylko 10 rekordów?

obiekt.filmy.find(:all, :limit => 10)

W tym momencie (tj. przy obecnej implementacji AR) jedyne sensowne co możesz zrobić w tym względzie to napisać własną metodę w klasie Osoba, która wywołuje metodę find_by_sql klasy Film.

Możesz spróbować poniższy kod:

def films_limited(limit) Film.find_by_sql("select * from films where osoba_id = #{self.id} limit #{limit}") end
Edit
Rozwiązanie Radarka, jest oczywiście bardziej sensowne :slight_smile: