質問: ### 前提・実現したいこと 使用言語:haml、jQuery、rails 現在、trelloのようなタスク管理アプリを作成していますが、他のタスクリストにタスクを移動した際に、そのタスクがどのタスクリストに属しているのかという情報を保存することができなくて困っています。 複数のタスクリストカードの中に複数のタスクが入れられる仕様になっており、jQuery UIのsortableを使ってカードの移動自体は問題なく動作しています。 また、それぞれのタスクはconnectWithオプションを使って他のタスクリストに移動できるようになっています。 ranked_modelを使用して一つのタスクリスト内でのタスクの順番は保存できるようになったのですが、他のタスクリストに移動した際の順番の保存ができません。 具体的に言うと、 <タスクリスト1> ・タスク1 ・タスク2 ・タスク3 ↓ <タスクリスト1> ・タスク3 ・タスク1 ・タスク2 上記のように移動した時の並び替え・順番のデータベース保存はできています。 しかし、下記のようにタスクリスト間の移動を行った場合、 <タスクリスト1> ・タスク1 ・タスク2 ・タスク3 <タスクリスト2> ・タスク4 ↓ <タスクリスト1> ・タスク1 ・タスク2 <タスクリスト2> ・タスク3 ・タスク4 タスク3がタスクリスト2に属しているというデータが保存されないような状況です。 最初はタスク移動後に親要素のタスクリストidを引っ張ってきて更新すればいいのではないか?と考えたのですが、jQueryUIのsortableでは動かす前のタスクの情報を持ってくることはできても移動後の情報が取得できないような気がしましたので、 移動後にタスクリスト全体に対して、子要素のタスクのtasklist_idを書き換える処理をさせれば良いのではないかと考えました。(多少処理は重くなるかもしれませんが・・・) しかし、そもそもそのやり方自体がイマイチわからないといった状態です。 **タスクを移動後にタスクリスト全体に対して、子要素のタスクのtasklist_idを書き換えさせるようにデーターベースに保存させるにはどのようなコードで処理を行っていけば良いのでしょうか?** 自分でもイマイチ頭の中が整理されていないので、上手く伝えられているか不安な部分はありますが、ご教授いただけたらと思います。
回答: タスク移動後にitemに対して.parents()を使って、親要素のタスクリストに設定してあるカスタムデータ属性からタスクリストのidを取得し、それをparamsに入れてajax通信でタスクのデータベースを書き換えることができました。