我想使用gemacts_as_list来重新排序列表。
但它似乎没有比基于关联处理更多的受限查询(我想基于关联和布尔属性设置为的对象来排序列表true
)。
如果我没记错的话,通过查看日志,gem 似乎正在使用一条同时更新许多记录的 SQL 语句。
我想使用完全相同的语句来考虑我自己的自定义订购代码。
以下两个语句将问题对象从位置 3 移动到 8。
UPDATE "questions" SET position = (position - 1) WHERE ("questions"."question_list_id" = 2 AND position > 3 AND position <= 8)
UPDATE "questions" SET "position" = ?, "updated_at" = ? WHERE "questions"."id" = 55 [["position", 8], ["updated_at", "2014-06-09 14:40:47.545040"]]
是否可以使用 ActiveRecord 或任何其他方式,如果可以,如何重用上述代码?