views:

113

answers:

1

I find myself requiring this. Assuming cart is a model which has a list of users.

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

What's an easier way to get the index of an association like this?

+3  A: 

The index method on Array does the same as your index_of_item method e.g.

cart.users.index(current_user)

Returns the index of the first object in the array that is == to obj. Returns nil if no match is found.

mikej
I used find_index, but it looks like these do the same thing. Thanks!
cmaughan
Yep, it looks like as of 1.8.7 find_index has been added to Enumerable and Array#index is now just an alias to that.
mikej