2010-09-14 66 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