如何使用带有rails的haml在表中设置和IF?

时间:2013-05-29 18:59:27

标签: ruby-on-rails-3 haml

我正在为一个项目使用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 ,或“ - ”符号,何时使用它),任何人都可以给我一些帮助或解释如何用haml实现这些东西吗?

由于

1 个答案:

答案 0 :(得分:0)

几乎每件事都可能出错, 错误。不要懒惰,不要再摸索,并且阅读文档,因为这并不是那么严重:

  • 你的桌子主体需要缩进
  • 您的变量名称从conter切换为counter
  • Dashes表示Ruby代码:conter = 0需要- conter = 0
  • 同样,@food.each需要- @food.each
  • 标签只是%tagname,而不是%<tagname>; %<td>需要%td
  • 你在HAML中没有end块,这就是缩进的含义

您还有严重的逻辑错误。您在第一个counter结束时递增if,然后使用if而不是elsif对其进行后续检查,因此您的每个分支都是如此每次迭代都会循环。

您的代码也无法正常工作。当您取消缩进%tr时,您关闭该标记。如果你想在那个标签中嵌套东西,它们需要字面嵌套