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 Discussion :

Inclure un morceau de code commun dans mes méthodes ?


Sujet :

Ruby

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Inclure un morceau de code commun dans mes méthodes ?
    Salut,

    Situation initiale :
    J'ai plusieurs méthodes dans un controlleur "filter" qui prennent des paramètre et qui appellent une méthode nommée 'list' une fois ces paramètres enregistrés : filter_type() , filter_theme() etc.. qui font un redirect_to :action => 'list'.
    filter_controller.rb :
    def filter_theme
    session[:theme] = params[:theme]
    redirect_to :action => 'list'
    end

    def filter_type
    session[:type] = params[:type]
    redirect_to :action => 'list'
    end

    def list
    Produit.find(:all, conditions [..] where session[:type] AND session[:theme][..])
    Paginate [...]
    end
    La méthode 'list' étant un morceau de code commun à tous les méthodes filter_type ou filter_theme .

    Problème pour mettre de l'AJAX :
    Mais pour pouvoir faire de l'AJAX en appelant filter_type() ou filter_theme() etc. je voudrais me passer de la commande redirect_to :action => 'list'

    La solution que je recherche (si c'est la meilleure ?) :
    En gros je voudrais que le code de la méthode list , s'inclus dans mes méthodes filter_type ou filter_theme sans appeler list.rhtml pour pouvoir executer filter_type.rjs ou filter_theme.rjs


    En espérant avoir été compréhensible
    Merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 172
    Points : 219
    Points
    219
    Par défaut
    Bonjour,

    Pour appeler la méthode nommée "list" au sein des méthodes "filter_theme" et "filter_type", nul besoin de recourir à un "redirect_to".

    Pourquoi, par exemple, ne pas positionner la méthode list en privée et l'appeler directement au sein des autres méthodes ?

    ex :

    def filter_theme
    ...
    list
    end

    def filter_type
    ...
    list
    end

    private

    def list
    ...
    end

    Autre possibilité : si la méthode list est un pré requis à toute méthode du contrôleur, ou presque, il peut être intéressant de la déclencher via un filtre "before_filter".

    En espérant avoir bien compris le problème.
    Côme

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Tout simplement , la solution été tellement simple que j'y avais pas penser
    Ca fonctionne merci !

  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
    Ouais c'est énorme Ror, plus tu programmes, et plus t'effaces des lignes, lol !
    Sinon, juste une remarque : essaye d'éviter les variables de session, surtout si c'est juste pour passer un parametre entre 2 pages...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 104
    Points : 120
    Points
    120
    Par défaut
    Citation Envoyé par Zfred
    Ouais c'est énorme Ror, plus tu programmes, et plus t'effaces des lignes, lol !
    Sinon, juste une remarque : essaye d'éviter les variables de session, surtout si c'est juste pour passer un parametre entre 2 pages...
    En parlant de ça, comment fonctionne le "flash" ? C'est une variable de session déguisée, ou y a mécanisme interne à RoR qui se rappelle juste de la page précédente ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Drupal] Code php dans mes articles
    Par kaskarot dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 21/10/2012, 12h29
  2. Réponses: 2
    Dernier message: 01/09/2008, 17h07
  3. Réponses: 6
    Dernier message: 17/12/2007, 16h16
  4. Réponses: 9
    Dernier message: 04/07/2007, 19h27
  5. [JSP] [include] inclure un morceau de code
    Par viena dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/01/2005, 11h51

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