Kiedy mam tablicę identyfikatorów, na przykład
ids = [2,3,5]
i występuję
Comment.find(ids)
wszystko dziala. Ale jeśli istnieje identyfikator, który nie istnieje, pojawia się wyjątek. Dzieje się tak zwykle, gdy otrzymuję listę identyfikatorów pasujących do jakiegoś filtra, a potem robię coś podobnego
current_user.comments.find(ids)
Tym razem mogę mieć ważny identyfikator komentarza, który jednak nie należy do danego użytkownika, więc nie został znaleziony i pojawia się wyjątek.
Próbowałem find(:all, ids)
, ale zwraca wszystkie rekordy.
Jedyny sposób, w jaki mogę to teraz zrobić, to
current_user.comments.select { |c| ids.include?(c.id) }
Ale wydaje mi się, że to super nieefektywne rozwiązanie.
Czy istnieje lepszy sposób na wybranie identyfikatora w tablicy bez uzyskiwania wyjątku dla nieistniejącego rekordu?