Rails Symbol to Proc

  1. def to_proc  
  2.     Proc.new { |*args| args.shift.__send__(self, *args) }  
  3.   end  

&符号用在symbol前面将调用to_proc方法,而to_proc里返回一个Proc对象,内部为调用symbol指定的方法 

 
  1. people.map { |p| p.name }  
  2. 等价于  
  3. people.map(&:name)  


即,&:name实际上调用了每个people对象的name方法,这样对对象的任意public方法我们都可以使用&+symbol来调用

  1. ids=gyms.map(&:id)

将 gym的id字段映射为一个id的数组

posted on 2013-03-20 11:29  leonworld2011  阅读(189)  评论(0)    收藏  举报

导航