如何将html id添加到rails form_tag

Mar*_*ark 75 html ruby-on-rails

我正在使用Rails 2.2.2,我想在form_tag生成的html表单代码中添加一个id.

<% form_tag session_path do -%>      
<% end -%>
Run Code Online (Sandbox Code Playgroud)

目前生产:

<form action="/session" method="post">
</form>
Run Code Online (Sandbox Code Playgroud)

希望它能产生:

<form id="login_form" action="/session" method="post">
</form>
Run Code Online (Sandbox Code Playgroud)

API是不是真的任何帮助,我已经尝试添加的各种组合

:html => {:id => 'login_form'}
Run Code Online (Sandbox Code Playgroud)

没有运气.

vla*_*adr 98

<element>_tag您直接指定HTML属性,如下所示:

<% form_tag session_path, :id => 'elm_id', :class => 'elm_class',
                          :style => 'elm_style' do -%>
   ...
<% end -%>
Run Code Online (Sandbox Code Playgroud)

对于需要在地图中移动HTML属性的构造:<element>_remote_tag:html

<% form_tag form_remote_tag :url => session_path, :html => {
                            :id => 'elm_id', :class => 'elm_class',
                            :style => 'elm_style' } do -%>
   ...
<% end -%>
Run Code Online (Sandbox Code Playgroud)

  • 可能是愚蠢的问题,但这可以为form_for完成吗? (2认同)

Kir*_*arp 27

这段代码

form_tag(:controller => "people", :action => "search", :method => "get", :class => "nifty_form")
Run Code Online (Sandbox Code Playgroud)

给出结果:

<form accept-charset="UTF-8" action="/people/search?method=get&class=nifty_form" method="post">
Run Code Online (Sandbox Code Playgroud)

但是,如果你使用这种结构

form_tag({:controller => "people", :action => "search"}, :method => "get", :class => "nifty_form")
Run Code Online (Sandbox Code Playgroud)

你会得到结果

<form accept-charset="UTF-8" action="/people/search" method="get" class="nifty_form">
Run Code Online (Sandbox Code Playgroud)

而这正是你想要的