関連のデータもサーバーに送るには
基本、ここに書いてあるとおり。
http://fits.hatenablog.com/entry/20120225/1330166288
ただし、サーバにrailsを使用している場合は、accepts_nested_attributes_forを使って、PUTしたデータを一度に更新したくなる。 ので、dataのkeyの部分は"_attributes"で終わるようにしたい。
また、データを取り出す際に単にitem.dataから取得するだけだと、関連先に含まれるフィールドに意図しないものが含まれてしまうため、 Rails側でCan't mass-assign protected attributesとなってしまう。
以下のように実装したWriterを使用するといい感じになる(今のところ)
Ext.define "hoge.data.writer.NestedJsonWriter", {
extend : "Ext.data.writer.Json"
alias : "writer.nested"
getRecordData: (record, operation)->
data = @callParent(arguments)
if record.associations.length > 0
record.associations.keys.forEach (key)->
data["#{key}_attributes"] = []
assoc = record[key]()
assoc.data.items.forEach (item)->
itemData = item.getProxy().getWriter().getRecordData(item)
data["#{key}_attributes"].push(itemData)
data
}