1

フォームデータを収集するフォームがあり、このフォームをserializeArray()すると、次のようになります。

[
  {
    "name": "authenticity_token",
    "value": "HRjaGFRSqX6EqTYnyohQbc9g6P6RTsDgV3qizYuoh+E="
  },
  {
    "name": "test[form_meta][index]",
    "value": "0"
  },
  {
    "name": "test[form_meta][location]",
    "value": "http://localhost/static/test/password.html"
  },
  {
    "name": "test[form_meta][title]",
    "value": "Passwords Form"
  },
  {
    "name": "test[form_meta][id]",
    "value": "form1"
  },
  {
    "name": "test[data][email[]]",
    "value": "arnel@personal.com"
  },
  {
    "name": "test[field_meta][email[]]",
    "value": "test.place_detail_email"
  },
  {
    "name": "test[data][password[]]",
    "value": "test"
  },
  {
    "name": "test[field_meta][password[]]",
    "value": "test.alarm_password"
  },
  {
    "name": "test[type][email[]]",
    "value": "text"
  },
  {
    "name": "test[label][email[]]",
    "value": "Email Address:"
  },
  {
    "name": "test[type][password[]]",
    "value": "text"
  },
  {
    "name": "test[label][password[]]",
    "value": "Password:"
  },
  {
    "name": "rec[email[]]",
    "value": "test.previous_address_category"
  },
  {
    "name": "rec[password[]]",
    "value": "c_test.password[]"
  }
]

これで結構です。しかし、私がそれを私のコントローラーにこのように送るとき:

$.ajax({
    type: "post",
    data: data,
    success: function(){<code>},
    error: function(){<code>}
});

私はこれを私のコントローラーで取得します:

{
  "authenticity_token"=>"HRjaGFRSqX6EqTYnyohQbc9g6P6RTsDgV3qizYuoh+E=",
  "test"=>{
    "form_meta"=>{
      "index"=>"0",
      "location"=>"http://localhost/static/test/password.html",
      "title"=>"Passwords Form",
      "id"=>"form1"
    },
    "data"=>{
      "email"=>[
        nil
      ],
      "password"=>[
        nil
      ]
    },
    "field_meta"=>{
      "email"=>[
        nil
      ],
      "password"=>[
        nil
      ]
    },
    "type"=>{
      "email"=>[
        nil
      ],
      "password"=>[
        nil
      ]
    },
    "label"=>{
      "email"=>[
        nil
      ],
      "password"=>[
        nil
      ]
    }
  },
  "rec"=>{
    "email"=>[
      nil
    ],
    "password"=>[
      nil
    ]
  },
  "controller"=>"test",
  "action"=>"create"
}

[ nil]配列はここで私を殺しています。フォームを変更したり、 [nil]値ではなく、実際に入力した値を取得したりする必要はありません。

この問題の解決策はありますか

4

0 に答える 0