2010-09-14 69 views
0

我使用的表單標籤指定的HTML ID,而我想要的結果被nomething這樣的:Ruby on Rails的:你怎麼用的form_tag

<form action="controller/action" id="myID"> 

我現在有這個

<% form_tag :action => '', :id=>"relative_date_filter" do |f| %> 

產生這樣的:

<form action="/controller/relative_date_filter" method="post"> 

編輯:
目前我得到這個錯誤:

compile error 
/app/views/controller/filters/_relative_time.html.erb:1: syntax error, unexpected tASSOC, expecting '}' 
...e=true ; form_tag {:action => ''}, {:id => "relative_date_f... 
          ^
/app/views/controller/filters/_relative_time.html.erb:1: syntax error, unexpected ',', expecting kEND 
...e ; form_tag {:action => ''}, {:id => "relative_date_filter... 
          ^
/app/views/controller/filters/_relative_time.html.erb:1: syntax error, unexpected kDO, expecting kEND 
... => "relative_date_filter"} do ; @output_buffer.concat "\n ... 
          ^
/app/views/controller/filters/_relative_time.html.erb:14: syntax error, unexpected kENSURE, expecting $end 
Extracted source (around line #1): 

1: <% form_tag {:action => ''}, {:id => "relative_date_filter"} do %> 

在這裏,有什麼奇怪的是,沒有行14.它的文件的結尾。我添加了一個返回值,並將其更改爲第15行。我之前的代碼確實導致了語法錯誤。

回答

2

這應該工作:

<% form_tag({:action => ''}, {:id => "relative_date_filter"}) do |f| %> 
+0

工作對我來說這給出了一個編譯錯誤 – NullVoxPopuli 2010-09-14 14:35:50

+0

對不起,我是太快了......只是一時 – Mischa 2010-09-14 14:37:14

+0

我更新了我的答案......你能再試一次嗎? – Mischa 2010-09-14 14:49:53

0

form_tag的第一個參數是URL這就是爲什麼你看到用於該「relative_date_filter」。我認爲額外的選項可能會讓你指定一個ID。

<% form_tag({:action => ''}, {:id => 'relative_date_filter'}) do |f| %> 

第一個散列是url和第二個任何額外的選項。例如,如果您想要發佈除發佈之外的其他任何內容,也可以使用這種形式方法。

+0

這也給編譯錯誤。 = \ – NullVoxPopuli 2010-09-14 14:41:37

+0

我已經添加了一些括號。 – Shadwell 2010-09-14 15:04:13

0
<%= form_tag ({:controller => 'public', :action => 'search'}), ({:class => "round_corners_8"}) do %> 

這一個用Rails 3.0