使用引导程序在索引操作中呈现 Div



我正在使用TradingCard模型构建Ruby on Rails应用程序。我有一个索引操作和相应的视图,我正在尝试打印出每个交易卡对象。这基本上是我在控制器中在我的索引操作下得到的内容:

@trading_cards = TradingCard.all

这是我的问题:我正在使用引导程序来帮助我解决样式的基本网格状方法,以及它在小型移动屏幕上的便利性。我正在使用引导来帮助完成总体布局和流程,但我为每个 TradingCard 对象构建了自己的小集换式容器;我用自己的CSS写的。它没有指定的高度,因此它可以根据需要达到的高度,以适合特定于该单个对象的所有文本。在中等大小的屏幕上,我希望我的索引视图每行仅显示三张集换式卡,其中每行都不会被其下方行中的集换式卡挡住。这是一个问题,因为最佳做法是简单地在索引视图中包含以下内容(当然,在视图文件夹中使用部分_trading_card):

<%= render @trading_cards %>

在我的_trading_card部分,我有这样的东西:

<div class="col-md-4">
<%= trading_card.body %>
</div>

这种方法的唯一问题是我无法真正告诉布局每 3 张集换式卡片创建新行。相反,我不得不继续将 col-md-4 吐到一个非常长的行中,结果,一些较高的集换式卡最终挤进了它们上面的行中,看起来真的很奇怪。

有没有更好的方法来实施整个方法?我错过了什么吗?或者有没有办法在我的控制器中指定我想以 3 个捆绑包的形式加载对象,以便我可以编写一个迭代,每次通过循环创建一个新行?

非常感谢任何帮助。对不起,如果这个问题真的很长。你们总是那么乐于助人,我真的不能感谢你们。

提前感谢您的任何帮助!!!

而不是使用render @trading_cards来循环你的TradingCard。您可以自己以 3 个切片的形式执行此操作(如@alfie建议的那样)。

<% @trading_cards.each_slice(3) do |cards| %>
  <div class="row">
    <% cards.each do |card| %>
      <%= render card %>   <!-- This will render your `_trading_card` partial -->
    <% end %>
  </div>
<% end %>

最新更新