Question
What does map(&:name) mean in Ruby?
@users.map(&:name)
In the above code, what does the &:name
means?
Answer
The syntax &:name
in Ruby is just syntactic sugar:
@users.map(&:name)
# is equivalent to
@users.map { |u| u.name }
&:name
creates a block that receives an object and calls the #name
method on it.
Basically in the above code you have an array of users and you get an array of strings with only the names of the users.