如何将HTML ID添加到rails form_tag


77

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

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

目前生产:

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

想要产生:

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

API并没有任何帮助,我尝试添加各种

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

没有运气。

Answers:


101

对于<element>_tag您指定HTML属性直接,具体如下:

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

对于构造,您需要在地图内移动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 -%>

28

这段代码

form_tag(:controller => "people", :action => "search", :method => "get", :class => "nifty_form")

结果:

<form accept-charset="UTF-8" action="/people/search?method=get&class=nifty_form" method="post">

但是,如果您使用此结构

form_tag({:controller => "people", :action => "search"}, :method => "get", :class => "nifty_form")

你会得到结果

<form accept-charset="UTF-8" action="/people/search" method="get" class="nifty_form">

而这正是您想要的


您认为?另外-仅代码答案不是最好的-尝试稍微解释一下答案。
random_user_name 2012年

1
那没问题。而且,是的,我认为:)如果您想添加类或方法或其他任何形式的标签,则只需要打包控制器和动作,例如{:controller =>“ people”,:action =>“ search”},然后你这个结构之后参数会被工作,如果他们是相关的
基里尔经

这确实帮助了我。感谢@Kirill Warp
罗伯特·特拉维斯·皮尔斯

3
<% form_tag 'session_path', :id => 'asdf' do -%>      
<% end -%>

产生

   <form action="session_path" id="asdf" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="ed5c62c836d9ba47bb6f74b60e70280924f49b06" /></div>
   </form>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.