Merci beaucoup pour cet exemple, je vais étudier ça avec grand intérêt et je ferai le retour.
Merci. On 13 mai, 14:35, Gregoire LEJEUNE <[email protected]> wrote: > Je te donne un petit exemple. De tête donc à vérifier sur les détails. > > Imaginons que tu souhaites récupérer, dans une base de données par > exemple, des informations sur un utilisateur. Dans la partie > Cappuccino, tu va utiliser une CPURLConnection comme ceci : > > var request = [CPURLRequest requestWithURL:url]; > var connection = [CPURLConnection connectionWithRequest:request > delegate:self]; > > Dans ce code, url est une variable contenant la route vers ton > contrôleur Rails. Donc si par exemple tu as un ID pour ton > utilisateur, tu peux coder une méthode comme ceci : > > -(void)getUserInformationByID:(int)userID > { > var url = "/userinfo/"+userID > var request = [CPURLRequest requestWithURL:url]; > var connection = [CPURLConnection connectionWithRequest:request > delegate:self]; > > } > > Maintenant dans Rails il te faut un contrôleur qui répond à la route > /userinfo/ID. Ce contrôleur va renvoyer une réponse au fromat JSON. > Disons un truc du genre : > > { :usreinfo => { :name => nameFromDB, :age => ageFromDB } }.to_json > > Maintenant, dans Cappuccino, il faut que tu créés deux délégués pour > gérer la réponse : > > - (void)connection:(CPURLConnection)connection didReceiveData:(CPString)data > { > var result = CPJSObjectCreateWithJSON(data); > > if( result.userinfo ) > { > // result.userinfo.name contient le nom > // result.userinfo.age contient l'age > } > > } > > Dans ce premier délégué, tu récupères les données (data) au format > JSON via CPJSObjectCreateWithJSON. Ensuite dans dans result tu as bien > l'attribut userinfo, c'est que tu es face à la réponse concernant tu > user. Donc, tu peux récupérer les données : l'age via > result.userinfo.age et le nom via result.userinfo.name. Je fais cela > parce qu'il n'est pas rare d'utiliser ce délégué pour plusieurs types > de requêtes. Note que tu peux également vérifier via la connexion. > > Le second délégué dont tu as besoin est : > > - (void)connection:(CPURLConnection)aConnection > didFailWithError:(CPString)error > { > alert(error); > > } > > Il sert simplement à traiter les cas d'erreurs. > > Voilà. J'espère que c'est plus clair. > > Greg > > Le 13 mai 2009 14:16, Zaphod Beeblebrox <[email protected]> a écrit : > > > > > > > C'est la jonction entre ton controller et cappucino. Tu fourni le > > format json, ok, tu crée un fichier CPURLConnection et tu le mets où ? > > C'est cette jonction que j'appréhendes mal, c'est pour ça que j'aurai > > bien aimé un exemple de base, mais complet. C'est assez dommage que le > > site n'en propose pas. > > > Merci. > > > On 13 mai, 10:39, Gregoire LEJEUNE <[email protected]> wrote: > >> C'est très simple... En fait les échanges entre Rails et Cappuccino se > >> font via JSON. Pour cela tu utilises CPURLConnection qui permet > >> d'instancier cette connexion. Ensuite tu dois utiliser les delegate > >> -connection:didReceiveData: et -connection:didFailWithError: pour > >> traiter le retour envoyé par Rails (en JSON donc). > > >> Greg > > >> Le 13 mai 2009 08:37, Zaphod Beeblebrox <[email protected]> a écrit : > > >> > Bonjour à tous, > > >> > J'aimerai savoir si certains d'entre vous s'étaient frotté à > >> > Cappuccino et si vous aviez des retours ou exemple simple (scaffold > >> > rails branché sur Cappuccino) ?! > > >> > J'ai essayé de suivre l'exemple de Getting Started With Cappuccino and > >> > Ruby on Rails mais je ne saisi pas bien la notion CPURLConnection qui > >> > est censé mapper les actions entre le controller Rails et la vue > >> > Cappuccino. > > >> > Donc je suis preneur d'explication ou d'exemple. > > >> > Merci. --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected] -~----------~----~----~----~------~----~------~--~---
