Добавить класс в collection_select в формуляре Ruby On Rails

Я использую форму для создания записи в RoR. У меня выпадающее меню, и я не знаю, как добавить класс для стилизации этого элемента.

Код:

<%= f.collection_select :id, TipusProducte.order(:nom),:id ,:nom, include_blank: false, class: "btn btn-secondary dropdown-toggle" %>

Но этот класс не работает, этот стиль взят из Bootstrap.

Спасибо!

2 ответа

Решение

Вы делаете это правильно, но вам нужно разделить хэши:

<%= f.collection_select :id, TipusProducte.order(:nom),:id ,:nom, { include_blank: false }, { class: "btn btn-secondary dropdown-toggle" } %>

В противном случае он интерпретируется как один хеш. Спецификация функции имеет два хэша объекта в качестве аргументов; первая для опций сбора, вторая для опций HTML.

В раскрывающихся документах Bootstrap стили всегда применяются к button элемент как это:

<div class="dropdown">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropdown button
  </button>
  <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
    <a class="dropdown-item" href="#">Action</a>
    <a class="dropdown-item" href="#">Another action</a>
    <a class="dropdown-item" href="#">Something else here</a>
  </div>
</div>

Но collection_select собирается дать вам select, как это:

<select name="post[author_id]">
  <option value="">Please select</option>
  <option value="1" selected="selected">D. Heinemeier Hansson</option>
  <option value="2">D. Thomas</option>
  <option value="3">M. Clark</option>
</select>    

Я предполагаю, что HTML выглядит примерно так:

<select ... class = "btn btn-secondary dropdown-toggle">

И я полагаю, Bootstrap не знает, как с этим что-то сделать.

Другие вопросы по тегам