0

我有一个看起来像这样的哈希:

{"Title"=>"Harry Potter", "Author"=>"Jk rowling", "Date Published"=>"1997"}

这是一切正常时的 html 表:

在此处输入图像描述

现在,我只是在迭代 th 的键和 td 的值。

所以这是我的代码:

%table
  %tr
    - data.each do |key, array|
        %th= key

  %tr
    - data.each do |key, array|
        %td= array

这有效,但我的问题是:

  • 如果一个值是空白的,而不是将相应键下方的列留空,而是将下一个值放在那里。因此,如果 Author 的值留空,则 1997 将移至表中的 Author 下方。

感谢大家的帮助!

4

2 回答 2

1

我会更像这样:

%table
  %tr
    - data.keys do |key|
        %th= key || ' '

  %tr
    - data.values do |val|
        %td= val || '<missing>'

使用keysvalues以相同的顺序返回键及其各自的值,因此您的标题和数据将匹配。如果缺少键,&nbsp;将帮助该列出现。如果缺少值&lt;missing&gt;应该导致<missing>显示。

如果代码中没有示例数据和工作示例,如果不花费大量时间将假数据、视图等拼凑在一起,就很难展示更多内容。

于 2013-10-11T03:40:05.973 回答
1

它可能是nil而不是生成thor td。你可以试试这个(注意,我并不完全熟悉你正在使用的视图 gem,所以我正在尝试一下):

%table
  %tr
    - data.each do |key, array|
        %th= key || "&nbsp;".html_safe

  %tr
    - data.each do |key, array|
        %td= array || "&nbsp;".html_safe
于 2013-10-11T02:48:40.890 回答