2013-05-29 48 views
0

我使用的軌道的一個項目(已經開始)和我的運氣不好,他們正在使用HAML(我的運氣不好,因爲我從來沒有在它好)。如何在使用haml和rails的表格中設置和IF?

我的問題是,我有我的結果,和數組,和我想通過它來獲取和打印一些信息(那很容易),但我現在的問題是,以使其適合到一個表。

表有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中的東西?

感謝

回答

0

幾乎可以是錯的每一件事,錯誤。別偷懶,停止摸索周圍,並閱讀文檔,因爲這嚴重並不難:

  • 你的表的身體需要縮進從conter
  • 你的變量名稱切換到counter
  • 破折號表示Ruby代碼:conter = 0需要是- conter = 0
  • 再次,@food.each需要是- @food.each
  • 標籤是隻是%tagname,而不是%<tagname>; %<td>必須%td
  • 您在HAML不end塊,這是縮進什麼

你也有一個嚴重的邏輯錯誤。你在你的第一個if年底增加counter,然後你使用的if而不是elsif爲後續的檢查測試,讓你的循環的每一個分支之後,將每個迭代。

你的代碼也不能工作。當您取消縮進%tr時,您的已關閉該標籤。如果你想在標籤中嵌套東西,他們需要字面嵌套

+0

的感謝!那麼,櫃檯和科特我最後一分鐘改變它粘貼在這裏,因爲我的變量錯誤地用西班牙語命名(由於之前的代碼也是),但感謝您的解釋,很清楚 – jpganz18