Какой правильный синтаксис button_to для добавления класса в сгенерированную форму? - PullRequest
9 голосов
/ 15 февраля 2012

Я пытаюсь применить класс к форме, сгенерированной button_to в Rails 3.

Опция :class устанавливает класс для кнопки отправки, поэтому документы говорят нам использовать :form_class для применения класса к форме.

1009 * Е.Г. *

<%= button_to 'x', user_contact_path(@user, contact), :method => :delete, :form_class => "delete" %>

Это просто добавляет атрибут form_class="delete" к элементу кнопки. Я пробовал различные комбинации, используя :html_options и так далее.

Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

15 голосов
/ 15 февраля 2012

Этот метод прекрасно работает для меня. Я могу сделать:

<%= button_to "Hello", root_url, :method => :get, :form_class => "my_class" %>

выше выдает следующее:

<form action="http://localhost:3000/" class="my_class" method="get">
  <div><input type="submit" value="Hello"></div>
</form>

Тем не менее, это в Rails 3.1, так как ссылка в ваших вопросах указывает и то же самое не будет работать в Rails 3.0.x, поскольку класс формы жестко запрограммирован .

Из кода url_helper:

("<form method=\"#{form_method}\" action=\"#{html_escape(url)}\" 
  #{"data-remote=\"true\"" if remote} class=\"button_to\"><div>" +
  method_tag + tag("input", html_options) + request_token_tag + 
  "</div></form>"
).html_safe
0 голосов
/ 15 февраля 2012

Попробуйте с

<%= button_to 'x', user_contact_path(@user, contact), {:method => :delete, :form_class => "delete"} %>

Это заставляет :form_class => "delete" быть частью хеша options вместо хеша html_options.

...