2011-03-07 53 views

回答

41

使用map方法:

返回与在枚举每一次元件运行块的结果的新的数组。

def recruits_names 
    self.referrals.map { |r| r.display_name } 
end 

[更新]如Staelen评价表明,本实施例甚至可以进一步简化为:

def recruits_names 
    self.referrals.map(&:display_name) 
end 

对于好奇,这是因为&呼叫to_proc在对象上下面它(当在方法调用中使用时),并且Symbol执行to_proc以返回Proc,该Proc执行由产生给该块的每个值上的符号所指示的方法(参见the documentation)。

+1

你也可以放弃'self'。它已经暗示 – edgerunner 2011-03-07 06:24:09

+7

Ruby非常直观,以至于答案实际上已经包含在问题中:-)“更高效的Ruby方法来映射**属性[...]”你不喜欢吗? – 2011-03-07 16:58:55

+3

如果您想要返回多个属性,但不是全部? – Steve 2012-03-11 03:10:41

相关问题