как добавить html id в rails form_tag - PullRequest
75 голосов
/ 06 марта 2009

Я использую Rails 2.2.2, и я хотел бы добавить идентификатор в HTML-код формы, сгенерированный form_tag.

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

без удачи.

Ответы [ 4 ]

98 голосов
/ 06 марта 2009

Для <element>_tag вы указываете атрибуты HTML напрямую, как показано ниже:

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

Для <element>_remote_tag конструкций вам необходимо переместить атрибуты HTML внутри :html карты:

<% form_tag form_remote_tag :url => session_path, :html => {
                            :id => 'elm_id', :class => 'elm_class',
                            :style => 'elm_style' } do -%>
   ...
<% end -%>
27 голосов
/ 28 октября 2012

Этот код

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

и это именно то, что вы хотите

3 голосов
/ 06 марта 2009
<% 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>
0 голосов
/ 20 марта 2018

В моем случае мне нужно было добавить параметры HTML в {}, чтобы фактически добавить id к form_tag, например:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...