essefbx
essefbx

Reputation: 300

Dynamically labeling div ids in Rails 3

I'm attempting to dynamically construct an accordion with rails-bootstrap, however the div ids all end up being statically assigned to the same thing, "info", so only the first module will expand or collapse.

How do I dynamically label the div id="info" using ruby?

<div class="accordion" id="categories">
    <div class="accordion-group">
        <div class="accordion-heading">

            <a class="accordion-toggle btn" data-toggle="collapse" data-parent="#accordion" href="#info">

                <h2><%= info_section.name%></h2>

            </a>

            <div id="info" class="accordion-body collapse">

                <div class="acccordion-inner">
                    <% info_section.info_sub_sections.each do |sub_section| %>
                    <%= render 'info_sections/sub_box', info_sub_box: sub_section %>
                    <% end %>
                </div>
            </div>
        </div>
    </div> 

Thanks!

Upvotes: 3

Views: 2985

Answers (1)

Dave Newton
Dave Newton

Reputation: 160191

<% info_section.info_sub_sections.each do |sub_section| %>
  <div id="info_<%= sub_section.id %>" class="accordion-body collapse">
    <div class="acccordion-inner">
      <%= render 'info_sections/sub_box', info_sub_box: sub_section %>
    </div>
  </div>
<% end %>

(Or whatever you want to name the div; you could use each_with_index, and so on.)

Upvotes: 7

Related Questions