1

好的,所以我正在渲染部分内容:

<%= 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 研究这个,只是不知道如何让我的数学进入循环或其他东西。真的被困在这里了伙计们。我将不胜感激。

干杯。

4

1 回答 1

0

我不知道 Ruby,但由于这也被标记为“数学”,所以让我介绍一种稍微不同的数学方法,它可能更容易。

如果总和为 120%(例如),计算 100%/120% 的比率,即为 0.833。然后将 0.833 乘以三个单独的宽度。没有必要以这种方式执行三个不同数量的减法。并且 100%/100% = 1.0,所以同样的过程在任何一种情况下都可以正常工作。

于 2013-01-13T23:29:14.887 回答