2010-01-13 10 views
5

Me resulta necesario. Suponiendo que el carro es un modelo que tiene una lista de usuarios.Índice de raíles de una asociación

def index_of_item 
cart.users.each_with_index do |u, i| 
    if u == current_user 
    return i 
end 
end 

¿Cuál es una manera más fácil de obtener el índice de una asociación como esta?

Respuesta

10

El método index en Array hace lo mismo que su método index_of_item, p.

cart.users.index(current_user) 

Devuelve el índice del primer objeto de la matriz que es == obj. Devuelve nil si no se encuentra una coincidencia.

+0

Utilicé find_index, pero parece que estos hacen lo mismo. ¡Gracias! – cmaughan

+0

Sí, parece que a partir de 1.8.7 se ha agregado find_index a Enumerable y el índice de matriz # ahora es solo un alias para eso. – mikej

Cuestiones relacionadas