in_groups_of(3)但仅适用于前3组

时间:2014-11-01 20:07:06

标签: ruby-on-rails

展开New row every 3 items - 我正在尝试在我的Forem(https://github.com/radar/forem)主题之间插入广告 - 前3组主题中每3个主题中有一个广告(3个广告位于总)。

更新

我最后感谢下面的答案,遗憾的是,它似乎没有将test作为有效的本地传递(在topic内找不到forem/topics/topic):

<% @topics.in_groups_of(3).each_with_index do |grouped_topics, index| %>
  <%= render partial: "forem/topics/topic", collection: grouped_topics %>
  <% if index < 3 %>
    <p>Ad</p>
  <% end %>
<% end %>

实时测试应用(点击绿色的大Run按钮进行测试):

http://runnable.com/VFUNK2ho3Fpr8Fp2/forem-with-ads-in-between-topics

有问题的文件:views/forem/forums/show.html.erb

1 个答案:

答案 0 :(得分:3)

in_groups_of将您的数组拆分为数组数组,因此应该是:

<% @comments.in_groups_of(3, false).each_with_index do |grouped_comments, index| %>
  <% grouped_comments.each do |comment %>
    ...
  <% end %> 
  <% if index < 3 %>
    <%= image_tag "selfie.jpg">
  <% end %>
<% end %>