【发布时间】:2012-06-02 06:11:17
【问题描述】:
在 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 进行排序。
在轨道控制器中
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),我想用position: index+1 更新数据库(mongoid),而第二个请求我想用position: index+4 更新它。谢谢。
【问题讨论】:
-
您是否考虑过添加一个新参数(例如“request_type”)或有两个不同的操作?
-
它有效,但它会很难看吗?
-
老实说,你在做的事情看起来有点难看。 :) 您也可以将增量作为参数(1 或 4)发送。
-
我不知道如何将参数从 jQuery 发送到控制器。你能告诉我作为答案吗?谢谢!
标签: jquery ruby-on-rails ruby-on-rails-3 web-services mongoid