htmlには、.columnクラスを持つ2つのdivがあります。そこで、各.columndivのデータをシリアル化するための各ループを作成しました。
// item.js
$('.column').each(function(){
update: $.post($(this).data('update-url'), $(this).sortable('serialize'));
});
例はとitem[]=1&item[]=5&item[]=4
ですitem[]=2&item[]=3
。これらのパラメーターは、POSTを介してソートされたRailsコントローラーに送信されます。
レールコントローラーにいる間
def sort
params[:item].each_with_index do |id, index|
Item.where(_id: id.last).update(position: index+1)
#Item.where(_id: id.last).update(position: index+4)
end
render nothing: true
end
Q:ポストパラメーターをDRYの方法で処理するにはどうすればよいですか?最初のリクエスト(item[]=1&item[]=5&item[]=4
)では、データベース(mongoid)を。position: index+1
で更新し、2番目のリクエストではデータベース(mongoid)を。で更新しposition: index+4
ます。ありがとう。