gpt4 book ai didi

ruby-on-rails - 如何在现有范围之间重新排序

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:37 25 4
gpt4 key购买 nike

给定的场景,

id name sequence
1 a 1
2 b 2
3 c 3
4 d 4
5 e 5

用户表有sequence,表示用户在前端显示的顺序。

在上面的示例中,如果我尝试在 user id 3 之间插入一个用户,那么预期的行为应该是

id name sequence
1 a 1
2 b 2
3 c 3
4 d 5
5 e 6
6 f 4

此处使用最后一个序列输入计算的位置last_sequence = 3.

同理,用户可以重复进行同一种操作,需要根据数据库中的重新排序。注意:不是 JQuery 排序。

我的尝试

seq = last_sequence
users.where("last_sequence >= ? and id != ?",3,6).each do |u|
u.update_attributes(sequence: seq+1 )
seq = u.sequence + 1
end

我知道上面说的不对,绞尽脑汁想办法解决

最佳答案

我是这样解决的

seq = latest_updated_user.sequence
user.where("sequence >= ? and id != ?",last_user.sequence, last_user.id).order(:sequence, :created_at).each do |v|
v.update_attributes(sequence: seq)
seq += 1
end

关于ruby-on-rails - 如何在现有范围之间重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56071639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com