2010-07-22 51 views
2

什麼是正確的方式來使用窗體標記,我收到編譯錯誤,當我包括結束。當我把它拿出來的時候,我應該手動使用HTML來結束表單嗎?或者我的語法有什麼問題?RoR:結束form_tag編譯錯誤

<html> 
    <head> 
     <title> 
     Databse connections 
     </title> 
    </head> 
    <body> 
     <%= form_tag (:action => 'create')%> 
     <%= text_field(:album, :title) %> 
     <%= text_field(:album, :artist) %> 
     <%= text_field(:album, :genre) %> 
     <%= datetime_select(:album, :release_date) %> 
     <%= submit_tag("Create") %> 
     <% end %> 

    </body> 
    </html> 

回答

3

如果您在沒有塊的情況下使用form_tag,它只會創建開始標記。如果你想創建兩個標籤,你需要傳遞給它一個塊,你似乎是試圖做的,但你缺少的do關鍵字後form_tag(...)

<% form_tag (:action => 'create') do %> 
    <%= text_field(:album, :title) %> 
    <%= text_field(:album, :artist) %> 
    <%= text_field(:album, :genre) %> 
    <%= datetime_select(:album, :release_date) %> 
    <%= submit_tag("Create") %> 
<% end %> 

沒有do開始塊時, end是一個語法錯誤。如果沒有使用當前語法中的end,則沒有指定字段位於表單內(但它們最終會成爲表單的一部分,因爲在指定之前,您沒有關閉由無數據塊form_tag創建的表單標記他們)。

+0

此外,他正在使用'<%= form_tag'而不是'<%form_tag' – 2010-07-22 22:38:34

+0

@Ryan Yah,我沒有回答這個問題,因爲這裏曾經有第二個答案提到它,但我想它是刪除。 – 2010-07-23 04:10:30