我有一个带有:week
字段的CheckIn
模型。我通常通过:week
CheckIn.all.order(:week)
我还可以使用户能够重新排序这些记录,从而有效地更新了:week
属性,从而产生了新的顺序。问题在于,当我更新:week
时,该:week
号码已经有另一个记录。
换句话说,如果我从此开始:
ci1 = CheckIn.create(week: 0)
ci2 = CheckIn.create(week: 1)
ci3 = CheckIn.create(week: 2)
ci4 = CheckIn.create(week: 3)
然后将ci2
的week
更新为2:
ci2.update({ week: 2})
我留下了check_ins
的数组,但是2个记录有同一周的编号,理想情况下,旧2将变成1.是否有内置的轨道来帮助这种情况,或者我需要一个回调来更新周数?
有许多宝石可以帮助您以这种方式记录订购。在插入中列时,他们会自动将随后的记录"降低"。查看acts_as_list
或ranked-model
。