form_tag искажает мое текстовое поле с атрибутами данных HTML5 - PullRequest
0 голосов
/ 17 сентября 2011

У меня есть этот код, работающий в отдельном представлении, но с внутренней частью form_for

<%= text_field :search_tags, :id => 'search_tags', 'data-autocomplete' => "lame sauce" %>

Я пытаюсь создать простую форму для отправки формы с автозаполнением. Он отлично работает в другом месте, но по какой-то причине, как только я извлекаю это text_field из form_for, он генерирует этот HTML:

<input id="search_tags_{:id=&gt;&quot;search_tags&quot;, &quot;data-autocomplete&quot;=&gt;&quot;lame sauce&quot;}" name="search_tags[{:id=&gt;&quot;search_tags&quot;, &quot;data-autocomplete&quot;=&gt;&quot;lame sauce&quot;}]" size="30" type="text">

Это все искажено и безобразно :( Теперь, поскольку это простая форма, которую я отправляю, я просто использовал form_tag, мне просто нужно, чтобы перейти к определенному контроллеру и действию ... вот и все. Во всяком случае, я прочитал документы text_field_tag ​​и text_field, и кажется, что ни один из них не делает то, что мне хотелось бы. Какое хорошее решение этой проблемы? Или есть какой-то способ использования text_field или text_field_tag, о котором я не знаю? Большое спасибо!

Ответы [ 3 ]

2 голосов
/ 17 сентября 2011

Если я понимаю, проблема только в том, как вы использовали text_field, попробуйте это:

<%= text_field :search, :tags, :id => 'search_tags', 'data-autocomplete' => "lame sauce" %>
2 голосов
/ 17 сентября 2011

За пределами form_for необходимо указать и имя объекта, а затем имя метода в качестве первого и второго аргументов, если вы хотите использовать text_field, а не text_field_tag.

В случае, если вы решите использовать text_field_tag (что, вероятно, лучше для ваших целей, когда вы находитесь за пределами form_for), убедитесь, что вы используете правильный синтаксис: первый аргумент - это id, а остальное - хэш опций.

Ссылки: API RoR: FormHelper # text_field , API RoR

P.S. Вам на самом деле не нужно переопределять идентификатор таким образом - он побеждает часть цели form_for, которая генерирует формы в стиле RESTful.

1 голос
/ 17 сентября 2011

Первый параметр - это идентификатор, второй параметр - это значение.Должен выглядеть примерно так:

<%= text_field_tag "search_tags", '', 'data-autocomplete' => "lame sauce" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...