我正在制作一个网页,我在其中迭代一个行的数据库,它是顺序敏感的。结果是,当我播种条目时,我在一行中的一个值中犯了一个错误,所以我去控制台修改它。一旦我输入'project.save‘,它将该行移到表的底部,从而破坏了我的订单。如何将最后一行移动到表的顶部,并将每一行向下推一行?
发布于 2015-09-18 20:45:41
ActiveRecord的默认排序是"Updated“。它不会更改数据库中行的位置。
只需将默认范围更改为"id“即可。
只需将这一行添加到您的模型中,默认的是您的id。
default_scope { order(:id) }要获得更好的解决方案,请在模型中添加一个位置,然后按此进行排序。
default_scope { order(:position) }这是Rails 4的语法,对于Rails 3和Rails 2是不同的。
发布于 2015-09-18 20:43:42
答案是在select语句中使用'命令由‘子句。没有这些,MySQL就不能保证结果会按任何顺序进行。
https://stackoverflow.com/questions/32660536
复制相似问题