IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

[Demande expertise] RoR direct ou Ajax?


Sujet :

Ruby on Rails

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 34
    Points : 23
    Points
    23
    Par défaut [Demande expertise] RoR direct ou Ajax?
    Hello à tous,

    j'essaie de faire qq chose avec RoR et je n'y parviens pas.
    Après mûre réflexion, cela ressemble à de l'Ajax, mais je n'en suis pas certain, de plus, RoR permets facilement d'appeler du js, non?
    Merci pour votre expertise du sujet ci-dessous:

    Je suis sur un page web. J'ai appelé sur la partie droite de ma page un grand nombre de photos au format thumbnails - pour bien comprendre la suite, il faut savoir que je possède 1 image sous 3 formats : thumbnails, medium et original.

    Ma page se charge, et j'ai un jcarousel qui me permet de voir l'ensemble de mes thumbnails.
    Jusque là, pas de soucis...

    Mais voilà, je veux, sur ma partie gauche laissait libre, sur la même page, afficher l'image que je clique, non plus en thumbnail, mais en plus grand, disons son équivalent en medium.
    Pb: je ne veux pas recharger toute ma page, juste appeler cette photo avec l'id que j'ai récupéré lors du clic et la charger.
    C'est de l'ajax, non?
    Je peux me servir de la méthode RoR link_to_function qui semble appeler du javascript?
    Ou alors autre chose? Les rjs? je connais pas...

    Quelqu'un a t'il déjà fait se genre de truc avec RoR?
    En vous remerciant par avance,

    Fred A.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 31
    Points : 27
    Points
    27
    Par défaut
    Ce n'est ni du RoR, ni de l'Ajax...juste une simple petite fonction javascript : un document.write avec le tag pour afficher ton image

    (après, si tu utilise prototype, tu utiliseras surement quelque chose comme $('id_destination').replace('<img src="..." />'); )

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 34
    Points : 23
    Points
    23
    Par défaut Ah bon? C'est si simple...
    Hello, Ertai

    je m'attendais à plein de réponses, mais pas celle là!
    Je vais essayer de faire comme cela, merci
    Je te tiens au courant si cela passe

    Merci en tous les cas
    A+

    Fred A.

    Citation Envoyé par Ertai Voir le message
    Ce n'est ni du RoR, ni de l'Ajax...juste une simple petite fonction javascript : un document.write avec le tag pour afficher ton image

    (après, si tu utilise prototype, tu utiliseras surement quelque chose comme $('id_destination').replace('<img src="..." />'); )

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    juste une simple petite fonction javascript : un document.write avec le tag pour afficher ton image
    Ca c'est la solution pour contourner Ror.

    La solution Ror serait, comme tu l'a dit au début, d'utiliser link_to_function ou link_to_remote suivant si tu précharges les images ou pas.

    Sinon une autre piste : rhotoalbum
    C'est un chtit programme en ruby qui génére des thumbnails et des pages index.
    L'idée, c'est de ne pas avoir besoin de générer les tailles intermédiaires des photos ("medium").
    Avec juste les thumbnails et les tailles originales le résultat est bon.
    Et puis ça met en cache toutes les photos déja chargées...etc...
    http://rhotoalbum.rubyforge.org/

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 34
    Points : 23
    Points
    23
    Par défaut
    Hello, Zfred et merci pour ta réponse

    en fait, on se sert déjà d'un outil ruby pour s'occuper de référencer et de redimensionner les photos qui est paperclip avec l'objet asset.
    C'est plutôt bien fait, même si le référencement est moins souple qu'avec ta proposition. mais comme il gère les uploads que l'on fait, on ne peut s'en défaire...

    De plus, ma problématique est bien de ne pas précharger les images de grande taille tant que l'utilisateur n'en a pas besoin, d'où mon propos sur Ajax.

    mais en effet, javascript semble savoir le faire.
    Sauf que j'e m'englue dans le javascript et qu'à débugger, ce truc là,y'a rien de simple et de bien parlant

    Je suis sous jquery et non sous prototype, car on utilise le plugin rails communautaire insoshi, et il tourne sous jquery, et même si je pourrais mettre un noconflict, je préfère ne pas additionner les bibliothèque js... pas fou, le Fred...

    Enfin bref, dès que je trouve une réponse performante et qui marche, j'en fais part sur le forum, c'est promis!
    Pour le moment, je rame un peu, du fait que la récup de l'id de l'asset me pose soucis à donner à javascript...

    Je reste ouvert à tte proposition

    Fred A.


    Citation Envoyé par Zfred Voir le message
    Ca c'est la solution pour contourner Ror.

    La solution Ror serait, comme tu l'a dit au début, d'utiliser link_to_function ou link_to_remote suivant si tu précharges les images ou pas.

    Sinon une autre piste : rhotoalbum
    C'est un chtit programme en ruby qui génére des thumbnails et des pages index.
    L'idée, c'est de ne pas avoir besoin de générer les tailles intermédiaires des photos ("medium").
    Avec juste les thumbnails et les tailles originales le résultat est bon.
    Et puis ça met en cache toutes les photos déja chargées...etc...
    http://rhotoalbum.rubyforge.org/

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    link_to_remote alors...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 34
    Points : 23
    Points
    23
    Par défaut
    Ouep, lorsque je lis la doc, elle me parait bien, la link_to_remote : elle génère de l'ajax comme une grande.
    sauf que je n'arrive pas à la manipuler...

    l'objet que je clique est un :

    image_tag(object.assets.first.picture.url(:thumb))

    et celui que je veux voir apparaitre à un autre endroit après ce clic est un :

    image_tag(object.assets.first.picture.url(:medium))

    où je fais le lien avec l'object.id entre les deux.
    Mais je n'ai pas d'action ror particulière... je ne connais que ces deux manières pour appeler ces photos, et je ne vois pas ce que je dois écrire dans le link_to_remote:

    <%= link_to_remote(image_tag(object.assets.first.picture.url(:thumb), :alt => "photo thumb", :width => 80),
    :url => {:action => 'image_tag(object.assets.first.picture.url(:medium))', :user_id => object.id },
    :update => 'div_object') %>

    et évidemment, cela ne marche pas du tout : l'action est bien trop longue, et je ne vois pas comment la "dissocier"...
    Une idée? :/

    Merci


    Citation Envoyé par Zfred Voir le message
    link_to_remote alors...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 36
    Points
    36
    Par défaut
    Salut

    Tu es sûr que ta requête AJAX est dirigé sur la bonne action?

    Par défaut, je crois que la requête envoyé est en POST, donc il faut penser à modifier le route.rb. Avec selon le cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :collection => { :ton_action => :post }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :member => { :ton_action => :post }
    ou alors ajouter l'option method à ton link_to_remote
    Sinon avec Firebug, tu peux voir les requetes XHR qui sont lancées et ce qu'elles retournent, ça peut te donner beaucoup d'indications.

    a+

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Dans la vue "index", chaque link_to_remote appelle un partial qui contient le 2eme link_to_remote.

    Exemple :

    Dans la vue index :
    A coté de chaque photo : <div id="photo<%= object.id %>"></div>

    Dans le controleur :
    replace_html 'photo#{object.id}', 'mon_partial'

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 34
    Points : 23
    Points
    23
    Par défaut Tjrs pas pu tester...
    Désolé, je garde précieusement ce code sous le bras, mais actuellement, je suis totalement full!
    Mais je vous tiens au courant dès que je peux!
    Merci en ts les cas

    A+

Discussions similaires

  1. [XL-2007] demander une fonction directe de texte sur la fonction DATE
    Par BARMAKI dans le forum Excel
    Réponses: 19
    Dernier message: 06/06/2012, 08h15
  2. Réponses: 15
    Dernier message: 12/07/2011, 11h11
  3. [AJAX] Récupérer directement les données d'un formulaire
    Par linar009 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 23/12/2007, 13h55
  4. [AJAX] Demande conseil developper en AJAX
    Par calitom dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2007, 20h58
  5. [AJAX] Demande de conseils en AJAX
    Par koolway dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/05/2006, 23h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo