Сетка флажка extjs удаляет рельсы - PullRequest
0 голосов
/ 17 мая 2011

Я использую ExtJS с Rails ... Я пытаюсь удалить записи, выбранные в сетке через "столбец флажка" ... У меня нет никакой идеи относительно того, как я могу обработать "Массив" выбранных записей сетки через рельсыконтроллер ... plzz, направьте меня ... код кнопки удаления выглядит следующим образом:

var sm = prodgrid.getSelectionModel();
delbtn.on("click", function () {
    var sel = sm.getSelections();
    Ext.Ajax.request({
        url: 'products/delete',
        //   method:'DELETE',
        params: {
            'prodid': sel
        }

    });

});

Как я могу пройти через массив "sel" в моем контроллере Rails ??Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 17 мая 2011

Вы не можете напрямую передавать массивы в контроллер Rails. Эта статья должна помочь вам понять передачу параметров в контроллеры rails.

Тем не менее, вам нужно преобразовать массив в строку. Вы можете использовать функцию, подобную этой, для преобразования массива в строку:

function array_params(arry) { 
    var paramvar = ""; 
    arry.each(function(s){ 
    paramvar = paramvar.concat("arr[]=",s,"&");}); 
    paramvar = paramvar.replace(/&$/,""); 
    return paramvar;
}

и, наконец, позвоните:

Ext.Ajax.request({
    url: 'products/delete',
    //   method:'DELETE',
    params: {
        'prodid': array_params(sel)
    }

}); 
0 голосов
/ 17 мая 2011

используйте Ext.each для итерации массива:

var sm = prodgrid.getSelectionModel();
delbtn.on("click", function () {
    var sel = sm.getSelections();

    Ext.each(sel,function(data){

        /// your stuff
        Ext.Ajax.request({
           url: 'products/delete',
           //   method:'DELETE',
           params: {
               'prodid': data.id // the parameter
           }
        }); 
        ///// end       

    },this);
});
...