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]
-~----------~----~----~----~------~----~------~--~---