【问题标题】:How to arrange the objects in a certain order如何按一定的顺序排列对象
【发布时间】:2014-01-17 06:25:47
【问题描述】:

我有一个表中的图像列表(创建表 ID、名称、序列)。我想按一定的顺序排列对象。

例如

1, "rose", 1
2, "jasmine", 2
3, "lilly", 3

如果我把“lilly”移到“rose”前面,顺序如下

1, "rose", 2
2, "jasmine", 3
3, "lilly", 1

有没有办法通过 gem 自动实现这一点,因为我不想通过自己编写更新代码来更新表中的所有序列值。

【问题讨论】:

  • 将 lilly 设置为序列 0 ?或使用更大数字 100,200,300 的序列,以便在它们之间放置项目:)
  • 我建议使用浮点数而不是整数进行排序 - 这样,您始终可以在任意两个元素之间移动任何给定元素。需要在 1.0 和 2.0 之间移动一些东西吗?将其设置为 1.5。在 1.5 和 2.0 之间移动另一个?它可以是 1.75,依此类推。这需要只更新一条记录,而不是全部更新(扩展性不是特别好)。

标签: mysql ruby-on-rails


【解决方案1】:

您可以使用ActsAsList gem,当您更改记录的位置时,它会为您执行位置更新工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多