Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 如何使用haml和rails在表中设置和IF?_Ruby On Rails 3_Haml - Fatal编程技术网

Ruby on rails 3 如何使用haml和rails在表中设置和IF?

Ruby on rails 3 如何使用haml和rails在表中设置和IF?,ruby-on-rails-3,haml,Ruby On Rails 3,Haml,我正在为一个项目(已经开始)使用rails,而对于我的坏运气,他们正在使用haml(我的坏运气是因为我从来都不擅长它) 我的问题是,我有我的结果和数组,我想通过它打印一些信息(这很容易),但现在我的问题是使它适合表格 该表有3列,其中3列有名称(因此,每行将有3个不同的条目),因此,我尝试使用计数器并执行类似的操作 %table{:border => "1"} conter = 0 @food.each do |f| -if conter == 0 %<tr>

我正在为一个项目(已经开始)使用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
%表{:border=>“1”}
conter=0
@食物。每个都有|
-如果conter==0
%
%
=f.说明
-conter++
-结束
-如果conter==1
%
=f.说明
-伯爵++
-结束
-如果conter==2
%运输署
=f.说明
-counetr=0
-结束
结束
但是不起作用,返回一个非法嵌套的错误:在纯文本中嵌套是非法的。我不知道如何修复它(老实说,我仍然不太了解haml,或“-”号,何时使用),有人能给我一些帮助或解释如何在haml中实现吗


谢谢

几乎每一件可能出错的事情都是错的。不要偷懒,不要胡乱摸索,阅读文档,因为这并不难:

  • 您的表体需要缩进
  • 变量名从
    conter
    切换到
    counter
  • 破折号表示Ruby代码:
    conter=0
    需要
    -conter=0
  • 同样,
    @food。每个
    都需要是
    -@food。每个
  • 标记只是
    %tagname
    ,而不是
    %
    <代码>%需要是
    %td
  • 在HAML中,没有
    end
    块,这就是缩进的作用
您还有一个严重的逻辑错误。在第一次
if
结束时,使用递增的
计数器
,然后使用
if
而不是
elsif
对其进行测试,以进行后续检查,因此每次迭代都将跟踪循环的每个分支


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

谢谢!嗯,计数器和内容我在最后一分钟将其更改为粘贴在这里,因为我的变量在西班牙语中命名错误(由于之前的代码也是如此),但感谢您的解释,已经很清楚了