Rails控制器接收散列中的POST值,它沒有自然順序,但對於我的應用程序,我需要它,因爲用戶可以通過Javascript更改表單字段的順序。 (通過jQuery的Sortable)是否有可能在Rails控制器中檢索POSTed值的原始順序?
是否有任何其他方式來檢索其原始順序中發佈的值?
Rails控制器接收散列中的POST值,它沒有自然順序,但對於我的應用程序,我需要它,因爲用戶可以通過Javascript更改表單字段的順序。 (通過jQuery的Sortable)是否有可能在Rails控制器中檢索POSTed值的原始順序?
是否有任何其他方式來檢索其原始順序中發佈的值?
除非你解析原始的後期數據,否則它可能會在散列。由於哈希不是有序的,所以你被搞砸了。
儘管如此,通過使用Rails的參數魔法,您可以將它作爲數組傳遞。例如。 「富[] =酒吧&富[] =巴茲&富= MAZ」(同樣適用於post數據)會給你["bar", "baz", "maz"]
爲params[:foo]
使用jQuery排序,你只需要或者
這將爲您提供像這樣設置了一個param :{"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("/", $('#sortable').sortable('serialize'), function(ret){
// whatever you want to do with the outcome here.
});
你可以發佈訂單作爲額外的參數,理論上你可能能夠猴子修補它,所以它使用了一個有序的散列,但有很多合併正在進行...... – 2009-08-16 10:03:44
是否有一些標準要求值需要按照它們出現的順序發佈?如果有,瀏覽器是否關心? – innaM 2009-08-16 10:27:26
Manni,問題在於DR想要維護訂單,因爲他/她想知道用戶將事情分類的順序。序列化是正確的方法。 – semanticart 2009-08-16 15:49:24