0

我正在将 Rails 用于一个项目(已经开始),并且由于我的运气不好,他们正在使用 haml(我的运气不好,因为我从来都不擅长它)。

我的问题是我有我的结果和数组,我想通过它并打印一些信息(这很容易),但现在我的问题是让它适合表格。

该表有 3 列,其中 3 列带有名称(因此,每行将有 3 个不同的条目),所以,我试图采取一个计数器并做这样的事情

%table{:border => "1"}
conter = 0
@food.each do |f|
  -if conter == 0
    %<tr>
      %<td>
        =f.description
    - conter ++     
  -end
  -if conter == 1
    %<td>
      =f.description
    -conter ++
  -end
  -if conter == 2
    %td
    =f.description
    -counetr = 0
  -end 

end

但不起作用,返回非法嵌套错误:纯文本中的嵌套是非法的。我不知道如何解决它(老实说,我仍然不太了解haml,或“-”符号,何时使用它),谁能给我一些帮助或一些关于如何实现事物的解释在哈姆?

谢谢

4

1 回答 1

1

几乎每一件可能出错的事情都是错误的。别再偷懒了,别再摸索了,阅读文档,因为这真的不那么难:

  • 您的表格主体需要缩进
  • 您的变量名从 切换contercounter
  • 破折号表示 Ruby 代码:conter = 0需要- conter = 0
  • 再次,@food.each需要- @food.each
  • 标签只是%tagname,不是%<tagname>%<td>需要%td
  • 您不会end在 HAML 中阻塞,这就是缩进的用途

你还有一个严重的逻辑错误。counter您在 first 结束时递增if,然后在后续检查中使用 anif而不是 anelsif对其进行测试,因此每次迭代都将遵循循环的每个分支。

你的代码也不能工作。当您取消缩进时%tr,您将关闭该标签。如果你想在那个标签中嵌套东西,它们需要按字面意思嵌套

于 2013-05-29T19:06:53.180 回答