HAML преобразует мой код в неправильный HTML

#html #ruby-on-rails #ruby #haml

#HTML #ruby-on-rails #ruby #haml

Вопрос:

Я пишу код HAML:

 .col-xs-4.form-control= text_field_tag :q
  

Но это преобразует в:

 <div class="col-xs-4 form-control">
    <input type="text" name="q" id="q">
</div>
  

Как я могу написать HAML, чтобы он преобразовал его в:

 <input type="email" class="form-control" id="q" placeholder="Email">
  

Я не могу найти никакой хорошей документации для этого.

Комментарии:

1. это потому, что вы читаете неправильную документацию. Прочитайте один на text_field_tag

Ответ №1:

На самом деле вы просите об этом:

 .col-xs-4.form-control
  = text_field_tag :q
  

Это приводит к вложению text_field_tag HTML-кода внутри другого <div> , который вы объявили неявно.

Такие помощники представления Rails text_field_tag не знают, в каком контексте DOM они вызываются, поэтому, если вы хотите добавить классы, вы должны передать их в качестве явных аргументов:

 = text_field_tag(:q, nil, class: 'col-xs-4 form-control')
  

Комментарии:

1. Спасибо! Я не знал, что я могу писать таким образом! Теперь я знаю!