我有一个关于Ruby数组的问题,但它有点难以描述,所以我从阅读其他问题中找不到多少。这里是。
目前我有以下代码可以使用(Prawn表的一部分)
代码段A:
students = all_students.map do |student|
[
student[:first_name],
student[:last_name],
student[:email],
student[:given_name]
]
end
pdf.table students
这很好,但现在我想省略一些列(例如,不显示last_name)。 假设我得到一系列列名,让我们说pickColumns:
摘录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
我无法使用代码段B中的替换代码实现代码段A的效果。我在代码段B中获得的内容不是“student [:first_name]”的实际值,只是字符串“first_name” “对于每一行。
如果我的描述不是100%明确,请告诉我。
谢谢你的帮助!
此致
答案 0 :(得分: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的命名约定,您应该更改变量名称以使用所有小写和下划线,而不是使用camelCase。