extjs флажок сетка удалить рельсы

я использую ExtJS с Rails... Я пытаюсь удалить записи, выбранные в сетке, через "столбец флажка"... я понятия не имею, как я могу обрабатывать "массив" выбранных записей сетки через контроллер 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?? помогите пожалуйста


person Wanderer    schedule 17.05.2011    source источник
comment
какую ошибку вы получили? Не должно быть так сложно перебирать массив?   -  person sra    schedule 17.05.2011


Ответы (2)


используйте 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);
});
person Egy Mohammad Erdin    schedule 17.05.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)
    }

}); 
person Abdel Raoof Olakara    schedule 17.05.2011