2011-04-18 62 views
0

我在Rails 3.x中使用ExtJs。如何使用Ext.Ajax.request方法从EditorGrid中删除/修改记录从EditorGrid面板删除/修改数据库记录

我尝试使用store.remove()和类似的其他方法,但它不会从数据库中删除记录。

在此先感谢!

代码:

//** Destroy method **// 

     def destroy 
      puts 'destroy' 
      @unit = Unit.find(params[:id]) 
      puts 'will destroy' 
      @unit.destroy 
      puts 'destroyed' 
     end 

    //** units.js **// 

    var delbtn = Ext.getCmp('btnDelete'); 
       delbtn.on('click',function(){ 

        var grid = Ext.getCmp('maingrid'); 
        var selection = grid.getSelectionModel().getSelected(); 
        Ext.Ajax.request({ 
        url: '/units/destroy', 
        method: 'POST', 
        params: { 
        'id' : selection.data.id } 

        }); 

       });//end del function 

//** Store.js **// 
Ext.data.Api.restActions = { 
      create : 'POST', 
      read : 'GET', 
      update : 'PUT', 
      destroy : 'DELETE' }; 
storeId: 'MyUnitStore', 
      root: 'data', 
      autoLoad: true, 
      autoSave: false, 
      //batch: true, 
      restful:true, 
      writer: new Ext.data.JsonWriter({ 
       encode : false, 
       listful:false, 

       destroy: '/units/destroy', 
       update : '/edit' 
      }), 
      url: '/units.json', 
       fields: [ 
       { 
        name: 'unitname' 
       }, 
       { 
        name: 'description' 
       } 
       ] 

//** Edit Button **// 
var store = Ext.getCmp('maingrid').getStore();     
       store.update(); 

回答

1

store.remove()从电网的相关仅存储中删除的数据(记录)。它本身不与服务器端通信。您需要使用Ajax请求并与Rails 3.x进行通信以删除相应的记录。

var selection = grid.getSelectionModel().getSelected(); 
Ext.Ajax.request({ 
    url: '/ExampleController/Delete', 
    method: 'POST', 
    params: { 
     'id': selection.data.id 
    }, 
    success: function(result, request){ 
     // Refresh the grid store and display 
    }, 
    failure: function(result, request){ 
     // Display delete error message 
    } 
} 
+0

@Abdel:谢谢!这是否也适用于EditorGrid? – Rashmi 2011-04-19 05:10:04

+0

@rashmi为什么不呢?你有什么错误吗? – 2011-04-19 05:19:48

+0

@abdel:我试过一样,它不显示任何错误,但对按钮单击没有任何影响。 – Rashmi 2011-04-19 05:21:11