宝石のacts_as_listを使用してリストを並べ替えたいと思いました。
しかし、関連付けベースよりも制限されたクエリを処理していないようです (関連付けとブール属性が に設定されたオブジェクトの両方に基づいてリストを並べ替えたいtrue
)。
私が間違っていなければ、ログを見ると、gem が同時に多くのレコードを更新する SQL ステートメントを使用しているように見えます。
まったく同じステートメントを使用して、独自のカスタム注文コードを因数分解したいと考えています。
次の 2 つのステートメントは、質問オブジェクトを 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 またはその他の方法で可能ですか? もしそうなら、どのように上記のコードを再利用できますか?