Pierre :
côté serveur rien de spécial en fait.
Dans un render :json, Rails appellera .to_json sur l'objet.

Certains objets ont une méthode to_json (comme les objets ActiveRecord, les
hash, etc).

# ...
respond_to do |format|
  format.html
  format.json { render :json => @mon_objet } # mon_objet peut etre une
instance activerecord, un hash, un tableau, etc.
end
# ...

Et pour manipuler du JSON côté client, cf. la doc de jQuery (sur $.ajax ou
$.getJSON). Tu récupères directement le même objet manipulable car jQuery
s'occupe de le désérialiser automatiquement après un retour avec succès.

2010/12/16 pierre nespo <[email protected]>

> Bonjour,
>
> @nicolas: merci pour ta réponse.
>
> Effectivement, j'ai regardé la tronche des headers
> des réponses de requêtes ajax est c'est pas génial... (surtout le
> Content-length)(rails3.0.3 + ujs + jrails).
>
> C'est dommage, car c'est quand même super rapide à mettre en place, je
> dirais même que ça fait le café.
>
> Vous auriez pas un lien sur une méthode alternative (pour les réponses en
> json) ?
>
> Pierre Nespo <http://p3on.fr>
> 06.50.71.62.80
>
>
> 2010/12/16 olivi morel <[email protected]>
>
>> Windob connait pas ca moi !! lol
>> je tourne sous debian la branche 2.6.26 "lenny"
>>
>> Le 16 décembre 2010 11:47, Nicolas Blanco <[email protected]> a écrit :
>>
>> OK.
>>>
>>> Déjà que tu débutes, si en plus tu rajoutes la couche Windows (plateforme
>>> la moins supportée par les développeurs Ruby malheureusement) et encore par
>>> dessus un IDE usine à gaz, t'es pas aidé.
>>>
>>> Laisse les IDEs clicodromes plus ou moins buggés pour plus tard lorsque
>>> tu auras bien compris les principes de base en utilisant les dernières
>>> versions stables.
>>>
>>> S'il te plait, prends quelques temps pour trouver un éditeur de texte
>>> simple qui te convienne sous Windows.
>>>
>>> Il en existe des tonnes (Notepad++, UltraEdit, etc). Prends celui qui te
>>> plait le plus et débute avec un éditeur de texte basique.
>>>
>>> Nicolas.
>>>
>>> 2010/12/16 olivi morel <[email protected]>
>>>
>>>>  je n'abandonnerais pas Rails et Ruby !!
>>>> je préfère encore faire une offrande de  1000chat au dieux Matz. [?][?]
>>>>
>>>> Le 16 décembre 2010 11:11, Michel Belleville <
>>>> [email protected]> a écrit :
>>>>
>>>> OHeu, Nicolas n'oublie pas que tu as à faire à un débutant, qui vient
>>>>> probablement de PHP ou de Java, deux langages où si tu n'as pas de bon IDE
>>>>> tu as de vrais problèmes à démarrer les serveurs, lire les logs, etc et
>>>>> qu'il est peut-être aussi sous windows, système qui est de notoriété
>>>>> publique pas copain avec la ligne de commande, et qu'à chaque fois qu'un
>>>>> développeur chevronné effraye un débutant qui demande de l'aide, il n'y a
>>>>> pas forcément un dieu qui tu des chatons mais qu'il y a certainement un
>>>>> débutant frustré qui va abandonner Rails et probablement Ruby aussi.
>>>>>
>>>>> Et je ne sais pas pour tuer des chatons, mais effrayer et frustrer des
>>>>> débutants c'est mal.
>>>>>
>>>>> Michel Belleville
>>>>>
>>>>> 2010/12/16 Nicolas Blanco <[email protected]>
>>>>>
>>>>> T'es en train d'expliquer que tu ne développes pas avec Rails 3 parce
>>>>> que ton IDE n'est pas mis à jour et ne sait pas démarrer le serveur ?
>>>>> C'est une blague ?
>>>>> Je rêve je préfèrerais encore développer avec notepad !
>>>>>
>>>>> Sois au courant que Rails 3 est stable depuis plusieurs mois et que de
>>>>> plus en plus de librairies ne sont ou se seront plus compatibles dans
>>>>> quelques temps... Commencer à apprendre avec Rails 2 aujourd'hui c'est
>>>>> clairement perdre du temps.
>>>>>
>>>>> 2010/12/16 olivi morel <[email protected]>:
>>>>>
>>>>> > en réponse à ta question Nicolas " Vu que tu débutes et apprends,
>>>>> fais le
>>>>> > nécessaire pour passer
>>>>> > rapidement sur Rails 3..."
>>>>> > je développe avec radrails 2 seulement voila j ai un gros problème je
>>>>> > n'arrive pas à crée de projet en rails 3.0.0 ou supérieure .
>>>>> > si je crée le projet manuellement  y a pas de probléme
>>>>> >    rails new test
>>>>> >  create
>>>>> >       create  README
>>>>> >       create  Rakefile
>>>>> >       create  config.ru
>>>>> >       create  .gitignore
>>>>> >       create  Gemfile
>>>>> > par contre pour lancer le projet après il ne veux pas :'(
>>>>> > Le 15 décembre 2010 23:53, Nicolas Blanco <[email protected]> a
>>>>> écrit :
>>>>> >>
>>>>> >> Bonsoir et merci de poser la question.
>>>>> >>
>>>>> >> Donc pourquoi faut-il progressivement abandonner le RJS ? Voici ma
>>>>> >> longue (mais détaillée) réponse...
>>>>> >>
>>>>> >> Il faut déjà bien comprendre ce que c'est le RJS. C'est en gros
>>>>> faire
>>>>> >> une requête au serveur, et le serveur va répondre un bloc de JS
>>>>> généré
>>>>> >> dynamiquement, avec des morceaux de vues à l'intérieur. Le client
>>>>> >> reçoit ce gros morceau moche mélangeant HTML et JS et l'évalue.
>>>>> >>
>>>>> >> En fait, tout est une question de bonnes conventions. Il y a 10 ans,
>>>>> >> cela ne posait pas de problème de mélanger les styles dans le code
>>>>> >> HTML.
>>>>> >>
>>>>> >> Aujourd'hui c'est devenu un standard de séparer l'HTML des styles
>>>>> avec
>>>>> >> des CSS...
>>>>> >>
>>>>> >> Progressivement, il en va de même pour le code côté client : les
>>>>> bons
>>>>> >> développeurs Web ne mélangent plus le JS dans l'HTML, cela s'appelle
>>>>> >> l'Unobtrusive JavaScript.
>>>>> >> Fini les onclick="bidule", etc. Désormais, le code côté client est
>>>>> >> scripté à part avec un framework Javascript type jQuery qui va
>>>>> binder
>>>>> >> des événements sur les différents éléments de vues.
>>>>> >>
>>>>> >> Le gros phénomène actuel est que progressivement la logique se
>>>>> déplace
>>>>> >> du côté client. Avec l'augmentation des performances des
>>>>> interpréteurs
>>>>> >> JavaScript, les interfaces mobiles, les interfaces HTML offline, les
>>>>> >> vues deviennent de plus en plus complexes.
>>>>> >>
>>>>> >> Des frameworks comme Sproutcore d'Apple ou Cappuccino déplacent
>>>>> >> totalement la logique côté client et proposent des ensembles de
>>>>> >> composants JavaScript indépendants. Ces composants communiquent
>>>>> >> uniquement avec le serveur avec des appels JSON. En gros le serveur
>>>>> ne
>>>>> >> fournit plus de vue après l'envoi de l'application initiale, il ne
>>>>> >> fournit qu'une API qui va répondre au client avec du JSON.
>>>>> >>
>>>>> >> Donc ça c'était pour la tendance actuelle... En gros pour résumer,
>>>>> >> actuellement une bonne manière de faire est de scripter des
>>>>> composants
>>>>> >> d'interfaces indépendants et donc potentiellement réutilisables en
>>>>> >> utilisant un framework JS (bas niveau : jQuery, plus haut niveau par
>>>>> >> exemple Backbone.js). Et s'il doit y avoir communication entre les
>>>>> >> composants et le serveur, cela se fait via des appels REST avec un
>>>>> >> retour en JSON.
>>>>> >>
>>>>> >> --
>>>>> >> Nicolas Blanco, Web developper
>>>>> >>
>>>>> >> http://www.nicolasblanco.fr
>>>>> >> Jabber/GoogleTalk : [email protected]
>>>>> >> Twitter : http://twitter.com/slainer68
>>>>> >> Github : http://github.com/slainer68
>>>>> >> Skype : slainer68
>>>>> >>
>>>>> >> --
>>>>> >> 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]
>>>>> >
>>>>> > --
>>>>> > 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]
>>>>>
>>>>> --
>>>>>
>>>>> Nicolas Blanco, Web developper
>>>>>
>>>>> http://www.nicolasblanco.fr
>>>>> Jabber/GoogleTalk : [email protected]
>>>>> Twitter : http://twitter.com/slainer68
>>>>> Github : http://github.com/slainer68
>>>>> Skype : slainer68
>>>>>
>>>>> --
>>>>> 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]
>>>>>
>>>>>  --
>>>>> 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]
>>>>>
>>>>
>>>>  --
>>>> 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]
>>>>
>>>
>>>
>>>
>>> --
>>> Nicolas Blanco, Web developper
>>>
>>> http://www.nicolasblanco.fr
>>> Jabber/GoogleTalk : [email protected]
>>> Twitter : http://twitter.com/slainer68
>>> Github : http://github.com/slainer68
>>> Skype : slainer68
>>>
>>>  --
>>> 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]
>>>
>>
>>  --
>> 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]
>>
>
>  --
> 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]
>



-- 
Nicolas Blanco, Web developper

http://www.nicolasblanco.fr
Jabber/GoogleTalk : [email protected]
Twitter : http://twitter.com/slainer68
Github : http://github.com/slainer68
Skype : slainer68

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

<<333.png>>

Répondre à