【问题标题】:Populate an new array from another array of symbols从另一个符号数组填充一个新数组
【发布时间】:2011-07-09 23:18:58
【问题描述】:

我有一个关于 Ruby 数组的问题,但很难描述,所以我在阅读其他问题时找不到太多信息。这里是。

目前我有以下有效的代码(Prawn 表格的一部分)

片段 A:

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

这很好用,但现在我想省略一些列(例如,不显示姓氏)。 假设我得到一个列名数组,比如说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

使用sn-p B中的替换代码,我无法达到sn-p A的效果。我在sn-p B中得到的不是“student[:first_name]”的实际值每行只有一个字符串“first_name”。

如果我的描述不是 100% 清楚,请告诉我。

感谢您的帮助!

问候

【问题讨论】:

    标签: ruby arrays ruby-on-rails-3 symbols prawn


    【解决方案1】:
    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​​ 的命名约定,您应该更改变量名以使用全部小写和下划线,而不是驼峰式。

    【讨论】:

    • 哇哦。谢谢大佬,效果很好!我将对我的命名风格进行更改。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多