Rails: Bootstrap Accordion не разрушается - PullRequest
0 голосов
/ 18 декабря 2018

Вот мой код:

<div class="panel-group" id="accordion">
  <% @workspace_tasks.each do |t, a| %>
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a data-toggle="collapse" data-parent="#accordion" href="#collapse<%= t.to_s %>">
            <%= t %>
         </a>
      </h4>
    </div>

    <div id="collapse<%= t.to_s %>" class="panel-collapse">
      <div class="panel-body">  
          <table class="table table-striped">
          </table>
      </div>
    </div>
  </div>
 <% end %>
</div> 

Как вы можете видеть, я устанавливаю идентификатор для панели в соответствии с ключом для хэша, который я перебираю.

Информация отображается правильно, однако, если я по умолчанию устанавливаю панель для раскрытия, я не могу свернуть ее.Обратное также верно, когда я не могу развернуть панель, если для нее установлено значение «По умолчанию свернуто».

Я использую идентичный код в другом месте моего приложения, но с другой моделью, используемой для создания хэша в контроллере.Я нахожу это поведение очень странным.

Я не уверен, что это мой код?Или что-то с Bootstrap?

1 Ответ

0 голосов
/ 20 декабря 2018

Спецификация HTML5 гласит, что идентификатор не может содержать пробелы:

При указании в элементах HTML значение атрибута id должно быть уникальным среди всех идентификаторов в дереве элемента идолжен содержать хотя бы один символ. Значение не должно содержать пробелов.

Вам необходимо подготовить переменную t в качестве действительного идентификатора, например, заменив пробелы на -:

t.to_s.gsub(/\s/, '-')

Или с помощью parameterize:

t.to_s.parameterize
...