Rails控制器在散列中接收POST值,该散列没有自然顺序,但对于我的应用程序,我需要它,因为用户可以通过Javascript更改表单字段的顺序。 (通过jQuery排序)
有没有其他方法可以检索原始排序中的已发布值?
答案 0 :(得分:2)
使用jQuery sortable,你只需要
这将为您提供如下的参数:{"item"=>["2", "3", "4", "5", "6", "1", "7"]}
一些让你入门的例子:
示例onSubmit(在这种情况下,您的订单被序列化为params [:serialized_form]):
<FORM ACTION=".." NAME="testform"
onSubmit="$('#serialized_form').value = $('#sortable').sortable('serialize')">
<INPUT TYPE="hidden" id="serialized_form" value="">
...
示例$ .post:
$.post("/", $('#sortable').sortable('serialize'), function(ret){
// whatever you want to do with the outcome here.
});
答案 1 :(得分:1)
除非你解析原始的帖子数据,否则它可能会在哈希中。由于哈希没有订购,你就搞砸了。
你可以将它作为一个数组传递,但是,通过利用Rails的参数魔法保持顺序。例如。 “foo [] = bar&amp; foo [] = baz&amp; foo = maz”(同样适用于POST参数)会为["bar", "baz", "maz"]
提供params[:foo]