I found this code in a RailsCast:
def tag_names @tag_names || tags.map(&:name).join(\' \') end
What does the (&:name)
(&:name)
(&:name) is short for (&:name.to_proc) it is same as tags.map{ |t| t.name }.join(' ')
tags.map{ |t| t.name }.join(' ')
to_proc is actually implemented in C