Ruby on Rails:如何使用form_tag指定html ID

时间:2010-09-14 14:30:35

标签: ruby-on-rails

我正在使用表单标记,我希望结果是这样的:

<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行。我之前的代码确实导致了语法错误。

3 个答案:

答案 0 :(得分:2)

这应该有效:

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

答案 1 :(得分:0)

form_tag的第一个参数是url,这就是为什么你会看到'relative_date_filter'用于此目的的原因。我认为额外的选项可能允许您指定ID。

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

第一个哈希是url,第二个哈希是额外的选项。如果你想要除了post以外的任何东西,那么这也是提供form方法的地方。

答案 2 :(得分:0)

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

这个在Rails 3.0中为我工作