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 :

Méthode pour plusieurs controllers


Sujet :

Ruby on Rails

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut Méthode pour plusieurs controllers
    Bonjour

    j'ai crée une méthode dans un de mes controllers RAILS qui retourne true or false.

    def check(val)
    if val < 50
    ....
    return true
    else
    return false
    end

    Jusque là ok.
    Je voudrais qu'il soit possible d'utiliser cette méthode à partir d'autres controllers. Donc, je voudrais la mettre dans un fichier qui soit partagé par tous les controllers. C'est pourquoi je l'ai mis dans le fichier Application_helper.rb.
    Cependant, en la mettant là l'erreur suivante m'est indiquée:

    undefined method `check'

    Comment faut-il procéder de manière correcte afin d'avoir le comportement souhaité?

    merci

  2. #2
    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
    Un helper est normalement un truc qui sert dans une vue

    Donc il faut le mettre dans le ApplicationControler dans application.rb (et non le application_helper :p).

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut
    ok, merci pour la clarification!

    Citation Envoyé par SekYo Voir le message
    Un helper est normalement un truc qui sert dans une vue

    Donc il faut le mettre dans le ApplicationControler dans application.rb (et non le application_helper :p).

  4. #4
    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,

    Citation Envoyé par pjmorce Voir le message
    Comment faut-il procéder de manière correcte afin d'avoir le comportement souhaité?
    Les "helpers" existent pour partager des méthodes entre des vues, pas des contrôleurs.

    Pour les contrôleurs, je dirais qu'il y a 2 cas :

    • Soit tu veux partager une méthode entre tous tes contrôleurs et tu peux la mettre dans le contrôleur "application.rb" duquel héritent tous les autres contrôleurs.
    • Soit tu veux juste pouvoir réutiliser ponctuellement une méthode et tu peux passer par un classique module ou classe externe dont tu incluras le fichier avec une directive "require" en tête des contrôleurs correspondants.


    Maintenant il y a peut être d'autres possibilités ?...

    Côme

  5. #5
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    si tu as deux controlleurs avec deux actions identiques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class AController < ApplicationController
       def toto
          # CODE
       end
    end
     
    class BController < ApplicationController
       def toto
          # CODE
       end
    end
    Tu peux aussi créer un controlleur intermédiaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class CController < ApplicationController
       def toto
          # CODE
       end
    end
     
    class AController < CController
    end
     
    class AController < CController
    end
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

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

Discussions similaires

  1. Un control enfant pour plusieurs Controls Parents
    Par Cedric33 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/10/2008, 09h14
  2. Plusieurs layout pour un controller
    Par Flackou dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 31/08/2008, 03h16
  3. Validator unique pour plusieurs controles
    Par fmajet dans le forum ASP.NET
    Réponses: 3
    Dernier message: 18/08/2008, 12h55
  4. Evenement pour plusieurs controles creed dynamiquement
    Par sovo dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 23/10/2006, 17h14
  5. [C#] Une seule méthode pour plusieurs composants
    Par niPrM dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/06/2004, 14h41

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