在 html 中,我有 2 个带有 .column 类的 div。因此,我创建了一个 each 循环来序列化每个 .column div 的数据。
// item.js
$('.column').each(function(){
update: $.post($(this).data('update-url'), $(this).sortable('serialize'));
});
例子是item[]=1&item[]=5&item[]=4
和item[]=2&item[]=3
。这些参数将被发送到 rails 控制器,通过 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 方式处理 post 参数?对于第一个请求 ( item[]=1&item[]=5&item[]=4
),我想用 更新数据库 (mongoid) position: index+1
,而第二个请求我希望它用 更新position: index+4
。谢谢。