代码之家  ›  专栏  ›  技术社区  ›  mb14

转换HTML表

  •  4
  • mb14  · 技术社区  · 15 年前

    是否可以转换HTML表(不使用javascript)。 我正在从对象列表生成一个带有rails(和erb)的表。所以当每一行对应于一个对象时,这样做是非常简单和自然的。但是,我需要将每个对象表示为一列。我希望只有一个循环并描述每个列,而不是对每个列执行相同的循环。(这不一定需要一张真正的桌子,可以是一张清单或任何能起作用的东西)。

    更新

    澄清问题。我不想转换Ruby中的数组,而是要垂直显示一个带有行的HTML表。我的实际表实际上是每行使用一个部分,它会生成一个单元格列表(td)。如果有帮助,可以将其更改为列表。无论如何,这是一个HTML问题,而不是Ruby问题:如何显示一个垂直(而不是水平)显示行的表。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Alberto Santini    15 年前

    你可能需要这样的东西?

    class Array
      def transpose
        # Check here if self is transposable (e.g. array of hashes)
        b = Hash.new
        self.each_index {|i| self[i].each {|j, a_ij| b[j] ||= Array.new; b[j][i] = a_ij}}
        return b
      end
    end
    
    a = [{:a => 1, :b => 2, :c => 3}, {:a => 4, :b => 5, :c => 6}]
    a.transpose #=> {:a=>[1, 4], :b=>[2, 5], :c=>[3, 6]}
    
        2
  •  0
  •   mb14    14 年前

    显然,答案是否定的:-(