2012-03-23 15 views

Odpowiedz

29

Spróbuj wykonać następujące czynności:

ids = arr.map { |x| x[:id] } 
+0

To działa !!! dzięki za tonę Niklas !! – obi

+4

Dlaczego coś takiego jak 'arr.map (&: [: id])' nie działa? – Noz

+2

@Cycle: Kilka powodów: Pierwsze ': [' nie jest symbolem, ponieważ '[nie jest poprawnym identyfikatorem. Po drugie, nie można używać trika '&' w połączeniu z argumentami metody, ponieważ dokładna składnia to 'method (arg1, arg2, ..., & x)', gdzie x jest wyrażeniem, które ocenia wartość, która ma wartość '' '' '. metoda to_proc'. Ta metoda 'to_proc' jest wywoływana, a otrzymany obiekt' Proc' przekazany jako parametr blokowy do 'method'. –

Powiązane problemy