質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Q&A

解決済

1回答

1049閲覧

sortableを利用してデータリスト間のデータ移動を行った際の保存のやり方がわからない

r3333

総合スコア1

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

0グッド

0クリップ

投稿2020/06/13 04:59

編集2020/06/19 11:29

前提・実現したいこと

使用言語: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を書き換えさせるようにデーターベースに保存させるにはどのようなコードで処理を行っていけば良いのでしょうか?

自分でもイマイチ頭の中が整理されていないので、上手く伝えられているか不安な部分はありますが、ご教授いただけたらと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

タスク移動後にitemに対して.parents()を使って、親要素のタスクリストに設定してあるカスタムデータ属性からタスクリストのidを取得し、それをparamsに入れてajax通信でタスクのデータベースを書き換えることができました。

投稿2020/06/20 08:04

r3333

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

youz

2020/07/17 03:52

現在同じような状況で困っており、検索から辿り着きました。 もし可能ならば、どのようなコードになったのか見させていただきたく思います。 よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問