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% 未満または 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% の比率を計算すると、.833 になります。次に、.833 に 3 つの個別の幅をそれぞれ掛けます。このように、異なる金額の 3 つの減算を実行する必要はありません。100%/100% = 1.0 なので、どちらの場合でも同じプロセスが正しく機能します。

于 2013-01-13T23:29:14.887 に答える