web-dev-qa-db-ja.com

html idをRails form_tagに追加する方法

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'}

運がありません。

75
Mark

<element>_tagの場合、次のようにHTML属性を直接指定します。

<% form_tag session_path, :id => 'Elm_id', :class => 'Elm_class',
                          :style => 'Elm_style' do -%>
   ...
<% end -%>

<element>_マップ内でHTML属性を移動する必要があるのは、_tagremote:htmlコンストラクト用です。

<% form_tag form_remote_tag :url => session_path, :html => {
                            :id => 'Elm_id', :class => 'Elm_class',
                            :style => 'Elm_style' } do -%>
   ...
<% end -%>
98
vladr

このコード

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">

そしてそれはまさにあなたが望むものです

27
Kirill Warp
<% 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>
3
Dutow

私の場合、実際にidを_{}_に追加するには、次のようにHTMLオプションを_form_tag_に入れる必要がありました。

<%= form_tag(some_update_path(@some_record), { method: :put, id: "some-id" }) do <% end %>

0
Ivica Lakatoš