わかりましたので、部分的にレンダリングしています:
<%= 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でこれに取り組んできましたが、数学をループなどに入れる方法がわかりません。本当にここで立ち往生しています。助けていただければ幸いです。
乾杯。