Tengo una matriz llamada @friend_comparisons que se completa con una serie de objetos de usuario. entonces ordenar la matriz utilizando la siguiente:Obtención de un conteo de elementos de matriz que cumplen ciertos criterios
@friend_comparisons.sort! { |a,b| b.completions.where(:list_id => @list.id).first.counter <=> a.completions.where(:list_id => @list.id).first.counter }
Esta es la clasificación de la matriz por un cierto contador asociado a cada usuario (los detalles de los cuales no son importantes para la pregunta).
Quiero saber cuántos objetos de usuario en la matriz tienen un contador que es mayor que un cierto número (digamos 5). ¿Cómo hago esto?
Aquí es como yo soy la solución actualmente el problema:
@friends_rank = 1
for friend in @friend_comparisons do
if friend.completions.where(:list_id => @list.id).first.counter > @user_restaurants.count
@friends_rank = @friends_rank + 1
end
end
¿Es necesario iterar a través de cada elemento de la matriz y compruebe el estado y luego añadir una señal a un contador si la condición es se reunió o hay una manera de hacerlo sin usar un contador iterativo? – Alex