0

もともとphpで書かれ、レールに移動されているアプリでacts_as_listを使用したいと思います。ユーザーが位置 1 と 2 の間に何かを配置したい場合、フォームに 1.5 を入力するだけでよいように、フロートである「位置」値を使用しました。act_as_list は整数のみを使用しているようです。act_as_list で整数ではなく浮動小数点数を使用する方法はありますか? それとも、フロートのセットを挿入用の整数に変換する可能性がありますか?

どうも

4

1 に答える 1

0

変更することもできますが、整数を使用して、移動するアイテムの後に表示されるリスト内のすべてのアイテムを並べ替える方が簡単です。

浮動小数点数を使用すると、リストを移動するたびに数値をより高い精度に分割する必要があり、リストが十分に並べ替えられると、最終的に浮動小数点数の格納方法に関連する問題に遭遇する可能性があります。そして、すぐには明らかではない微妙な方法で順序が壊れているリストができます。浮動小数点数を使用する際のもう 1 つの問題は、位置 (本質的に整数) を浮動小数点数として格納することに関係しています。列に並んでいるとき、自分が 1.5 の位置にいるとは考えません。1 か 2 のどちらかの位置にいるのです。列に並んでいる人などで 1.5 のような測定値が意味をなす唯一のケースです。たとえば、ラインの正面からの距離 (フィート/メートル単位の物理的距離など) を測定している場合です。でも、

必要なクエリ/DB 変更の数を節約しようとしている場合 (floats を使用すると、複数のレコードの 1 つの列ではなく、1 つのレコードの 1 つの列のみを更新できます)、おそらく見逃している可能性があります。宝石があなたのためにそれをやってくれるのは便利ですし、フロートを本当にサポートする必要がある何らかの理由がある場合は、独自のものを作成したいかもしれません.

ただし、位置が本質的に整数であるという上記の点を考えると、DB 時間を節約するためだけに float を使用しないことをお勧めします。人々が実際にリストを再ソートする頻度はどれくらいで、アプリに実際にどのくらいの負荷がかかるでしょうか?

代わりに、古いシステムとの統合ポイントのためにフロートをサポートする必要がある場合は、それについて詳しく教えてください。

于 2012-08-06T15:43:51.117 に答える