2011-03-06 67 views
1

我有一個關於Ruby數組的問題,但它很難描述,所以我從其他問題中找不到太多東西。這裏是。從另一個符號陣列填充新數組

目前,我有下面的代碼,工程(對蝦的表的一部分)

片段答:

students = all_students.map do |student|   
     [ 
     student[:first_name], 
     student[:last_name], 
     student[:email], 
     student[:given_name] 
     ] 
    end 
    pdf.table students 

這工作得很好,但現在我想省略一些列的(例如,不要顯示last_name)。 說我得到的列名的數組,讓我們說pickedColumns:

片段B:

pickedColumns = [] 
    pickedColumns << :first_name << :email << :given_name #NOTE: no (:last_name) there! 

    students = all_students.map do |student| 
     studentCols = pickedColumns.each do |studentCol| 
     student[studentCol] 
     end 
    end 
    p.table students 

我一直沒能實現片斷A的效果,在片段B.使用替換代碼我在代碼片段B中得到的所有值不是每行的字符串「first_name」的「student [:first_name]」的實際值。

如果我的描述不是100%清楚,請讓我知道。

感謝您的幫助!

問候

回答

3
students = all_students.map do |student| 
    studentCols = pickedColumns.each do |studentCol| 
    student[studentCol] 
    end 
end 

作出這樣的

students = all_students.map do |student| 
    pickedColumns.map do |studentCol| 
    student[studentCol] 
    end 
end 

,它會工作。 PS:要遵守ruby的命名慣例,你應該改變你的變量名,使用全部小寫和下劃線,而不是駝峯式。

+0

哦哇。謝謝你,它效果很好!我將對我的命名風格進行更改。謝謝 ! – Dominic 2011-03-06 21:48:09