Rails не принимает массивы в вызовах AJAX? - PullRequest
0 голосов
/ 01 апреля 2011

Мой мусор:

jQuery 1.3.2
Rails 2.3.5

Если я выполняю простой вызов AJAX, как это:

$.ajax({
    type: "POST",
    url: "/admin/emails/" + id + "/distributions",
    dataType: "script",
    data: { value: ['1', '2'] }
});

Только 2 вернется, а не 1 и 2.

Внутри заголовков HTTP POST в Firebug говорится, что отправляет оба:

authenticity_token  bMmx0pnJ6ePq6ogwSCR1JH55U7wtrMEOy6ME4rNRmCI=
authenticity_token  bMmx0pnJ6ePq6ogwSCR1JH55U7wtrMEOy6ME4rNRmCI=
value   1
value   2
Source
value=1&value=2&authenticity_token=bMmx0pnJ6ePq6ogwSCR1JH55U7wtrMEOy6ME4rNRmCI%3D&authenticity_token=bMmx0pnJ6ePq6ogwSCR1JH55U7wtrMEOy6ME4rNRmCI%3D

Но когда он попадает в мой отладчик по моему create методу:

{"authenticity_token"=>"bMmx0pnJ6ePq6ogwSCR1JH55U7wtrMEOy6ME4rNRmCI=",
 "action"=>"create",
 "value"=>"2",
 "controller"=>"admin/distributions",
 "email_id"=>"3"}

Что здесь может происходить?

UPDATE

Если я сделаю это:

$.ajax({
    type: "POST",
    url: "/admin/emails/" + id + "/distributions",
    dataType: "script",
    data: { value: ["1",[data.value]], type: data.type }
});

Я могу заставить все молнии пройти через ..

1 Ответ

0 голосов
/ 01 апреля 2011

Вы должны использовать такой формат данных для этого запроса

data: { value[0]: '1', value[1]: '2'}

этот код делает правильный хэш

var c = ['1', '2'];
var i = 0;
var b = {}; //hash for data:
c.each(function(zz){
  b["value[" + i +"]"] = zz;
  i=i+1;
});

использование:

data: b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...