2010-08-14 70 views
19

我在做 「用戶設置表」,並堅持與HAML(縮進):HAML:的form_tag困境

= form_tag('/') 
    - [1,2,3].each do |i| 
    = check_box_tag "accept#{i}" 
    = submit_tag 

這將導致 「語法錯誤,意想不到的kENSURE,期待$結束」。

工作變體是

= form_tag('/') 
    - [1,2,3].each do |i| 
    = check_box_tag "accept#{i}" 
    = submit_tag 

結果

<input id="accept1" name="accept1" type="checkbox" value="1" /> 
    <input name="commit" type="submit" value="Save changes" /> 
    <input id="accept2" name="accept2" type="checkbox" value="1" /> 
    <input name="commit" type="submit" value="Save changes" /> 
    <input id="accept3" name="accept3" type="checkbox" value="1" /> 
    <input name="commit" type="submit" value="Save changes" /> 
    <form action="/" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="tuniieYp9hgvGBMaYDjK2l3Mgjpxo9F1LPzqEF4ykHg=" /></div> 

錯:控制形式標籤外,3次提交按鈕。

任何想法修復將不勝感激。謝謝!

+0

請編輯正常工作變型顯示器。 – Reactormonk 2010-08-14 14:17:08

回答

35

您應該將一個塊傳遞給form_tag。我想你想:

Rails的2.X:

- form_tag('/') do 
    - [1, 2, 3].each do |i| 
    = check_box_tag "accept#{i}" 
    = submit_tag 

的Rails 3+:

= form_tag('/') do 
    - [1, 2, 3].each do |i| 
    = check_box_tag "accept#{i}" 
    = submit_tag 
+8

這個回答不會對我有用。你應該使用=所以表單將被實際打印出來= = form_tag('/')do' – Sutulustus 2013-10-03 11:07:18

+4

我相信這是Rails 3(?)的變化。答案已經超過3歲,並且早於Rails 3。 – nirvdrum 2013-12-23 19:32:19