Rails:使用partial:collection组织一行

时间:2013-01-12 22:02:20

标签: ruby-on-rails math partial-views

好的,所以我渲染了一部分:

<%= render :partial => "box", :collection => @dashboard.charts %>

在部分我将每个“盒子”组织成3行。像这样:

if box_counter % 3 == 0 && box_counter != 0
    %></div><div class='row'><%
end

效果很好。

这是我的问题。我得到了数学,但我不确定如何将它翻译成Ruby。让我解释。

每个盒子都有一个尺寸。小,中,大。所有尺寸都指定了宽度。 20%,30%和50%。其中加起来高达100%。

用户可以在每行中安排这些框。我需要做的是检查行中的方框是否合计为100%。因此,如果它低于或超过100%,我将得到差异,将其除以3并为每个框添加或删除该百分比,使每个框加起来达到100%。

例如。用户可以组合使用大盒子,大盒子和小盒子。这相当于120%。所以我们得到差异,即20%,除以3 = 6.6%,然后将其从3个框中删除(因为我们超过100%)。这样就变成:LargeBox = 43.4%,LargeBox = 43.4%,Small Box = 13.4%。这将加起来100%。 (或接近于罚款)。

我一直在用Ruby工作,只是不知道如何将我的数学运用到循环中。真的卡在这里伙计们。我很感激你的帮助。

干杯。

1 个答案:

答案 0 :(得分:0)

我不知道Ruby,但由于这也标记为'math',让我提出一种稍微不同的数学方法,可能更容易。

如果你的金额是120%(例如),计算100%/ 120%的比率,这给你.833。然后将三个宽度中的每一个乘以.833。没有必要以这种方式执行不同数量的三次减法。并且100%/ 100%= 1.0,因此在任何一种情况下,相同的过程仍然可以正常工作。