Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

281
Views
¿Cómo hacer que las columnas de orden de la tabla csv de Ruby se basen en los encabezados de cada fila?

Usando la clase CSV::Table de Ruby por primera vez, me encontré con este comportamiento, que me parece extraño:

 require 'csv' r0 = CSV::Row.new(['a','b','c'], [], true) r1 = CSV::Row.new(['a','b','c'], [10,11,12]) r2 = CSV::Row.new(['c','b','a'], [22,21,20]) t = CSV::Table.new([r0,r1,r2]) t.to_csv # Expected Output: # => "a,b,c\n10,11,12\n20,21,22\n" # Actual Output: # => "a,b,c\n10,11,12\n22,21,20\n"

Supuse que dado que cada fila tiene encabezados definidos, la tabla respetaría esos encabezados, pero parece ignorarlos. Mirando los documentos, no veo una manera de ordenar todas las filas de manera consistente. ¿Hay alguna opción o método que no veo?

Es bastante fácil ordenar las cosas de manera consistente antes de crear las filas, claro, pero también es bastante fácil prescindir de la clase de tabla csv por completo: esperaba un poco más de pulido de una clase stdlib.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Los documentos de la Table dicen "Se supone que todas las filas tienen los mismos encabezados". Podemos ver que, si no se proporciona la palabra clave headers: entonces los encabezados se toman de la primera fila .

 # csv/table.rb class CSV class Table # Constructs a new CSV::Table from +array_of_rows+, which are expected # to be CSV::Row objects. All rows are assumed to have the same headers. def initialize(array_of_rows, headers: nil) # .. unless @headers # .. @headers = @table.first.headers
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!