2011-03-07 70 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

相關問題