我想在带有嵌套图像的炼金术元素中使用bootstrap 5旋转木马。为了做到这一点,我需要获得迭代的排序顺序或索引,因为旋转木马需要一个";活动的";标记。
<%= element_view_for(image_slide, tag: false) do |el| %>
<div class="carousel-item active">
<%= el.render :image, {}, class: "d-block w-100 #{"active" if index == 0}" %>
</div>
<% end %>
我怎样才能做到这一点?
在集合渲染器渲染的每个Rails部分中,都有一个名为<the-partial-name>_counter
的本地变量可用。
发件人https://guides.rubyonrails.org/layouts_and_rendering.html#local-变量
Rails还在名为按集合,以分部的标题命名,后跟_计数器。例如,当呈现集合@products时,分部_product.html.erb可以访问变量product_counter它索引在封闭视图。请注意,当分部名称通过使用as:选项进行了更改。例如,计数器变量上面的代码将是item_counter。
只需确保父元素(我假设是imager_slider
(使用集合部分渲染器。
[...]
<%= render image_slider.nested_elements.published %>
[...]
然后你可以使用
<%= element_view_for(image_slide, tag: false) do |el| %>
<div class="carousel-item active">
<%= el.render :image, {}, class: "d-block w-100 #{"active" if image_slide_counter == 1}" %>
</div>
<% end %>