引导转盘中每张幻灯片3张游戏卡

时间:2017-03-07 09:52:47

标签: ruby-on-rails twitter-bootstrap dynamic carousel

我在页面上有一个引导程序轮播,每张幻灯片有3张游戏卡,但它们是硬编码的。我怎样才能让它们充满活力?我需要从我的数据库中取出游戏卡。这就是我现在所拥有的:

<div id="carousel" class="carousel-inner thumb-inner">
  <div class="active item">
    <div class="col-lg-12 col-md-12 col-xs-12 slide1 slider-div">
      <div class="game-card">Some content here</div>
      <div class="game-card">Some content here</div>
      <div class="game-card">Some content here</div>
    </div>
  </div>
  <div class="item">
    <div class="col-lg-12 col-md-12 col-xs-12 slide1 slider-div">
      <div class="game-card">Some content here</div>
      <div class="game-card">Some content here</div>
      <div class="game-card">Some content here</div>
    </div>
  </div>
</div>

在这里放置ruby代码的正确方法是什么?我的想法很轻松。像这样:

<div class="active item">
  <div class="col-lg-12 col-md-12 col-xs-12 slide1 slider-div">
    <% Game.all.each_with_index do |game, index| %>
      <div class="col-lg-4 col-md-4 col-sm-4">
        <%= game.title %>
      </div>
    <% end %>
  </div>
</div>

但这会给我一张幻灯片上的所有游戏卡。每张幻灯片制作3张游戏卡的正确方法是什么?感谢。

1 个答案:

答案 0 :(得分:1)

您可以在此处使用limitoffset一次获得3条记录。例如:

Game.offset(0).limit(3)  # first 3 items
Game.offset(3).limit(3)  # next 3 items

如果Game表中只有少量记录适合内存,你也可以这样做:

items = Game.all.to_a  # do this once to load up all the records
items.shift(3)         # call repeatedly to get the next 3 items

这样做的好处是您可以预先随机化项目,例如Game.order("RANDOM()").to_a