Cool, thanks for pointing those items out! Please see comments below.
On Jun 2, 2010, at 10:30 AM, Miguel Arroz wrote: > Hi! > > I'm following the same tutorial. I finally could make it fully work with WO > (creating, updating, deleting, etc). > > I did the following changes: > > 1) SC expects variables to be camel-cased and not underscored. The > SproutCore format created on ERRest was set to underscore variables, so > isDone was being converted to is_done, and it would not work (tasks fetched > from the server would never be ticked). > 2) As you noticed, "records" should be "content". I submitted a patch to > ERRest fixing this problem and the previous. Yeah, this is kind of like #4. It's not clear that there is a preferred convention. It seemed this fell into a category of "we generally recommend..." I thought someone who was using ERRest preferred records over content for some reason. "Instead, data hashes are usually passed as a content property." - http://wiki.sproutcore.com/Todos+06-Building+the+Backend > 3) All URLs have to be adapted, including Update and Delete URLs that have > to be built like this: > >> SC.Request.putUrl('/WO/WebObjects/Todos.woa/-6666/ra/Task/' + >> store.idFor(storeKey) + '.sc').json() Thanks this escaped me! > > 4) Apparently, who wrote the tutorial assumed the backends would return an > object in response to the PUT request. ERRest will always return an array, so > you have to get objectAt(0) on the client side. This is a little hard to fix > in ERRest, however, I believe it's not broken at all. The thing is, there > appears to be no well defined conventions or standards on this (which is > always nice for a protocol...), which means it's really however the app > developer wants it to be. So, if you're using ERRest, you want it to be an > array. ;) > I think those were all the issues. I attach my data source file so you can > compare. If you adjust the URLs to match yours, it should be just a matter of > dropping it in on your client and it should work. > > If you want, please feel free to update Wonder's wiki! ;) I'll update the wiki by the end of the week, once again thanks for the help. > Yours > > Miguel Arroz > > <task.js> > > On 2010/05/26, at 20:30, Johnny Miller wrote: > >> OK, so here was the issue. >> >> In the Todos tutorial Chapter 7 they have you add a method to handle the >> server response. >> >> didFetchTasks: function(response, store, query) { >> if(SC.ok(response)) { >> store.loadRecords(Todos.Task, >> response.get('body').content); >> store.dataSourceDidFetchQuery(query); >> } else store.dataSourceDidErrorQuery(query, response); >> }, >> >> If you are using ERRest's JSON formatter you don't need the .content . I >> thought that was a call to a function but it turns out that is just an >> attribute that it anticipates. >> >> i.e. >> >> { "content" : [{"type":"Task","description":"Build my first SproutCore >> app","guid":"task-1","isDone":false},{"type":"Task","description":"Build a >> really awesome SproutCore >> app","guid":"task-2","isDone":false},{"type":"Task","description":"Next, the >> world!","guid":"task-3","isDone":false},{"type":"Task","description":"Integrate >> with ERRest","guid":"task-4","isDone":false}]} >> >> If you are using ERRest's SproutCore formatter in place of using .content >> you should use .records >> >> i.e here is the .sc response: >> >> {"records":[{"type":"Task","description":"Build my first SproutCore >> app","guid":"task-1","is_done":false},{"type":"Task","description":"Build a >> really awesome SproutCore >> app","guid":"task-2","is_done":false},{"type":"Task","description":"Next, >> the >> world!","guid":"task-3","is_done":false},{"type":"Task","description":"Integrate >> with >> ERRest","guid":"task-4","is_done":false}],"ids":[null,null,null,null],"count":4} >> >> If you'd like me to fill out the tutorial just let me know, >> >> Johnny >> >> >> >> >> >> On May 25, 2010, at 3:20 PM, Pascal Robert wrote: >> >>> I don't have an answer for you, but if you get it working, please update >>> this page :-) >>> >>> >>> http://wiki.objectstyle.org/confluence/display/WONDER/SpoutCore+and+ERRest >>> >>>> Hi, >>>> >>>> I'm trying to work through the sample sproutcore application found here: >>>> http://wiki.sproutcore.com/Todos%C2%A0Intro >>>> >>>> In place of the backends they recommend I'm trying to hook it up to >>>> ERRest. I've created the POJO for the object they want us to use and >>>> ERRest is vending the JSON. I can see from the sc-server log that it >>>> successfully requests the data but it doesn't get loaded into the >>>> application. >>>> >>>> Has anyone else worked through the example SproutCore app and if so can >>>> you give me a pointer? >>>> >>>> Thanks in advance, >>>> >>>> Johnny Miller >>>> Kahalawai Media Corp >>>> http://www.kahalawai.com >>>> >>>> >>>> >>>> _______________________________________________ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list ([email protected]) >>>> Help/Unsubscribe/Update your Subscription: >>>> http://lists.apple.com/mailman/options/webobjects-dev/probert%40macti.ca >>>> >>>> This email sent to [email protected] >>> >> >> Johnny Miller >> Kahalawai Media Corp >> http://www.kahalawai.com >> >> >> >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list ([email protected]) >> Help/Unsubscribe/Update your Subscription: >> http://lists.apple.com/mailman/options/webobjects-dev/arroz%40guiamac.com >> >> This email sent to [email protected] > > Johnny Miller Kahalawai Media Corp http://www.kahalawai.com
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
