Недопустимые символы в label_tag
-
06-07-2019 - |
Вопрос
Я создаю простую форму в ERB, но HTML, созданный тегом text_field, делает для атрибут в теге label недопустим.
<div>
<p><%= label_tag "email[name]", "Name" %></p>
<%= text_field :email, :name, :class => "text_field" %>
</div>
Создает HTML-код
<div>
<p><label for="email[name]">Name</label></p>
<input class="text_field" id="email_name" name="email[name]" size="30" type="text" />
</div>
Что приводит к ошибке
символ "[" не допускается в значении атрибута "for".
Как мне сгенерировать текст без вложенного параметра name email[имя], чтобы изменить тег label для атрибут?Существует ли альтернативный подход, который создает допустимый HTML?
Решение
Предполагается, что атрибут for ссылается на атрибут ID элемента, для которого он является меткой, а не на его имя.
Следовательно, разве вам не нужно:
<div>
<p><%= label_tag "email_name", "Name" %></p>
<%= text_field :email, :name, :class => "text_field" %>
</div>
...?
Другие советы
Извлеките его из кавычек или сгенерируйте содержимое div в виде строки и добавьте его в div.innerHTML
Не связан с StackOverflow