Ruby on Rails控制台在DB中移动行

时间:2015-09-18 20:29:44

标签: mysql ruby-on-rails ruby

我正在制作一个网页,我正在迭代行数据库,它对订单敏感。事实证明,当我播种条目时,我在连续的一个值中犯了一个错误,所以我去了控制台来改变它。一旦我进入' project.save'它将那一行移到了表格的底部,从而破坏了我的订单。如何将最后一行移动到表格顶部并将每隔一行向下推一个?

1 个答案:

答案 0 :(得分:0)

ActiveRecord的默认排序是“更新时间”。它不会更改数据库中行的位置。

只需将默认范围更改为“id”。

只需将此行添加到您的模型中,默认值就是您的ID。

default_scope { order(:id) }

要获得更好的解决方案,请在模型中添加一个位置,然后按

排序
 default_scope { order(:position) }

这是Rails 4语法,它与Rails 3和2不同。