ExtJSとRailsの連携(のつづき)

昨日、「サーバ側でエラーが発生した場合にどうするかStoreの中身をロールバックできないので、どうしたものかとか思案中・・・・。」 と書いたけど、StoreにrejectChangesというメソッドが定義されてた。これを使うとエラー時のロールバックは以下のように書ける。

    Ext.define 'hoge.controller.Users', {
        extend: 'Ext.app.Controller'
        ...
        onSaveButtonClick: (button)->
                record = @getForm().getRecord() or Ext.ModelManager.create({}, 'hoge.model.User')
                values = @getForm().getValues()
                record.set values 
                @getUsersStore().add record 
                @getUsersStore().sync
                    success: =>
                    failure: (b)=>
                        @getUsersStore().rejectChanges()