我想在最初用php编写的应用程序中使用acts_as_list,并将其移至rails。我们使用了一个浮动的“位置”值,如果用户想要在位置1和位置2之间放置一些东西,它们只需在表单中输入1.5。看起来acts_as_list只使用整数。在acts_as_list中有没有办法让它使用浮点数而不是整数?或者可能将一组浮点数转换为整数以进行插入?
THX
答案 0 :(得分:0)
你可以修改它,但是用户整数更容易,只需重新排序列表中>> 后移动的所有项目。
使用浮点数每次移动列表时,您都被迫将数字拆分为越来越高的精度,如果列表中有足够的重新排序,您最终可能会遇到与浮点数有关的问题存储,然后你将有一个列表,其排序以微妙的方式打破,不会立即明显。使用浮点数的另一个问题实际上与存储位置(本质上是整数)作为浮点数有关。当你站在一条线上时,你不会认为自己处于第1.5位 - 你要么处于第1位或第2位。唯一的情况是像1.5这样的测量就像人站在一条线上一样如果你是测量距离线的前方距离(例如以英尺/米为单位的物理距离)。然而,在那时,1.5测量具有非常不同的含义 - 它不再是位置,而是距离。
如果您尝试保存所需的查询/数据库更改次数(浮点数将允许您更新一条记录上的一列而不是多条记录上的一列),那么您可能会丢失出于方便宝石为你做的事情,如果你真的需要支持花车,你可能想要自己动手。
然而,鉴于以上关于位置本身就是一个整数的点,我建议不要做浮动只是为了节省数据库时间。人们多久会真正对列表进行重新排序,以及它会给您的应用带来多少实际负载?
如果相反,由于与旧系统的某些集成点,你必须支持浮点数,那么请告诉我们更多相关信息。