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

723
Views
¿Cómo presentar información JSON en un archivo html.erb (Ruby)?

Soy nuevo en Ruby/Rails y me dieron la tarea de hacer que un sitio de Ruby (.html.erb) se vea un poco mejor. Una de las cosas solicitadas fue presentar información en el sitio, que actualmente se muestra como JSON, como un html atractivo. La línea de html.erb es la siguiente:

<%= @buyer.generate_profile.inspect %><br>

y mostrará la información que recibe en el sitio como JSON. ¿Qué puedo hacer para analizar el JSON y hacer que el sitio muestre la información como html adecuado?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Es posible que desee consultar JSON.pretty_generate . Podría mostrar el resultado en un bloque de code como:

 <%# If your data is a JSON string, convert it to a hash %> <% hash = JSON.parse(@buyer.generate_profile) %> <pre> <code> <%= JSON.pretty_generate(hash) %> </code> </pre>
over 4 years ago · Santiago Trujillo Report

0

Entonces, el método generate_profile devuelve un objeto Hash y llamar a inspect creará una salida de cadena de la sintaxis Hash en Ruby, por lo que el resultado se parece a su comentario.

Si quisiera que se pareciera a JSON, la forma más sencilla sería usar el método to_json de esta manera

 <%= @buyer.generate_profile.to_json %>

pero honestamente, no es mucho mejor. E incluso si tuviera que buscar métodos que puedan presentarlo con saltos de línea adecuados, etc., eso tampoco lo mejoraría mucho.

Le recomendaría que aprenda a iterar sobre las claves y los valores en un Hash, porque eso le permitiría crear un diseño HTML personalizado que podría verse como usted quisiera.

Como ejemplo, le mostraré cómo podría crear una tabla simple basada en los datos de su comentario.

 <table> <thead> <tr> <th>Key</th> <th>XX</th> <th>YY</th> <th>ZZ</th> </tr> </thead> <tbody> <% @buyer.generate_profile.each_pair do |key, sub_hash| %> <tr> <td><%= key %></td> <td><%= sub_hash[:xx] %></td> <td><%= sub_hash[:yy] %></td> <td><%= sub_hash[:zz] %></td> </tr> <% end %> </tbody> </table>

Lo principal aquí es el uso de each_pair que es un método que itera sobre cada clave y valor del hash. En su caso, parece que los valores del primer hash son sub-hashes, de ahí mi uso de sub_hash como argumento de bloque.

Técnicamente, también podría usar each_pair en los sub-hashes, pero supongo que todos tienen las mismas claves, por eso agregué manualmente columnas y celdas para XX, YY, ZZ en combinación con sub_hash[:xx] , etc.

Una vez que aprenda cómo funciona la iteración sobre hashes y arreglos, recomendaría descartar el diseño de la tabla y, en su lugar, buscar enfoques de diseño web más modernos como Flex y CSS-Grid, pero una cosa a la vez :)

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!