1

Ruby 配列について質問がありますが、説明が難しいので、他の質問を読んでもあまりわかりませんでした。ここにあります。

現在、動作する次のコードがあります(エビのテーブルの一部)

スニペット A:

  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

スニペット B の置き換えられたコードを使用して、スニペット A の効果を達成することができませんでした。行。

私の説明が 100% 明確でない場合は、お知らせください。

助けてくれてありがとう!

よろしく

4

1 に答える 1

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 の命名規則に従うには、キャメルケースではなく、すべて小文字とアンダースコアを使用するように変数名を変更する必要があります。

于 2011-03-06T21:37:12.863 に答える