Rails Haml结束了If声明

时间:2013-07-16 17:00:30

标签: ruby-on-rails haml

我需要自动执行以下操作:


第1类    一堆桌子


第2类
   一堆桌子

...等

我可以这样做,如果我可以结束打印标题的if语句,但我不能因为缩进,如果我将表部分移动到if语句级别,表不会进入框< / p>

- @test = -1
- @c.each do |p|
  - if p.category_id != @test
    = @test = p.category_id
    .box
      boxname
      .box-content.padded{:style => "..."}

    %table.table-condensed{:align => "left"}
      %tr
        %td{:align => "center", :style => "..."}
        = p.name
      %tr
        %td{:align => "center"}
        %div{:id => pod....}  

1 个答案:

答案 0 :(得分:1)

要在Haml中执行此类操作,您应该首先以正确的格式获取数据,然后简单地遵循标记。

在这种情况下(如果我理解正确的话),您似乎可以使用group_by将每个类别组合在一起。这样的东西(从你的代码中简化):

- @c.group_by(&:category_id).each do |category, values|
  = category
  .box
    ...
    %table
      - values.each do |p|
        %tr
          %td
            = p.name