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()