C'est un plaisir ! Le 13 mai 2009 15:51, Zaphod Beeblebrox <[email protected]> a écrit : > > 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] -~----------~----~----~----~------~----~------~--~---
