2011-05-09 23 views

回答

5
def representative_email(group) 
    group.representatives.collect{ |m| 
    rep.User.find(m.user_id) 
    rep.email 
    }.join('; ') 
end 

您的函數的結果(即Array#collect結果)是一個Array;括號和引號是通過Array轉換爲String的方式引入的工件。如果你控制轉換過程,它通常會更好 - 因爲你確切知道你收到了什麼。

在這種情況下,您可以使用Array#join,它將Array的字符串表示形式粘貼在一起,使用參數String作爲粘合劑。

2

也許你看到了,雖然pinspect。雙引號不是字符串的一部分。他們只是代表字符串文學的方式。括號和逗號表示它們在一個數組中。當你通過pinspect看到它們時,它們就在那裏。如果你想看看它們的外觀如何,請使用puts

1

你看到的是你創建的數組的「字符串」版本。如果你想要它以不同的方式格式化的,你應該做這樣的事情,當你把它叫做:

emails = representative_email(group).join(';') 

使用find的時候,因爲它可以和會拋出一個ActiveRecord :: RecordNotFound異常,如果你也應該非常小心它找不到你要找的東西,所以你必須準備好解救這件事。我不確定你在這裏打電話給User.find,看起來不合適。