Html – how to add html id to rails form_tag

htmlruby-on-rails

I am using Rails 2.2.2 and I would like to add an id to the html form code generated by the form_tag.

<% form_tag session_path do -%>      
<% end -%>

Currently produces:

<form action="/session" method="post">
</form>

Would like it to produce:

<form id="login_form" action="/session" method="post">
</form>

The api isn't really any help and I've tried adding various combinations of

:html => {:id => 'login_form'}

with no luck.

Best Solution

For <element>_tag you specify HTML attributes directly, as follows:

<% form_tag session_path, :id => 'elm_id', :class => 'elm_class',
                          :style => 'elm_style' do -%>
   ...
<% end -%>

It is for <element>_remote_tag constructs that you need to move the HTML attributes inside a :html map:

<% form_tag form_remote_tag :url => session_path, :html => {
                            :id => 'elm_id', :class => 'elm_class',
                            :style => 'elm_style' } do -%>
   ...
<% end -%>