複数のアイテムのリストがあるとします。RailsとAjaxでレコードの配列を更新する
<ul data-id="2">
<li>
<span>Item name</span>
</li>
<li>
<span>Item name</span>
</li>
<li>
<span>Item name</span>
</li>
</ul>
各項目は、項目が現在所属するリストのIDと、リスト内のアイテムの現在の位置ですorder
属性であるlist_id
属性を持っています。
特定のイベントが発生した場合、このリスト内の各アイテムを見つけて、list_id
とorder
のパラメータを更新する必要があります。
は、ここで私はどこでもカードの配列を出力し、これまで
$('li').sortable({
update: function(event, ui) {
if (this === ui.item.parent()[0]) {
var cards = ui.item.parent('ul li').map(function() {
return {
list_id: $(this).closest('ul').data('id'),
order: $(this).index(),
}
}).get();
$.ajax({
url: "/cards/",
type: "PATCH",
dataType: "json",
data: { cards: cards },
success: function(resp){
console.log('Yay');
}
});
}
}
});
私がいる悩みを持っているものです。私がconsole.log(cards);
を実行すると、ちょうど私が理解できるデータなしで[]
が得られます。私のレールコンソールはparams配列も出力していないようです。
目標は、リスト内のすべてのカードを自分のレールコントローラに送信し、それらをすべて同時に更新することです。
スクリプトを完了してください。 –
「ui」はどこから来たのですか? –
申し訳ありませんが、質問を更新しました。私はjQuery Sortableを使ってリストアイテムをドラッグしています。更新関数は、リストアイテムが解放されたときに呼び出されます。 – colmtuite