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 :

Un tableau via une classe


Sujet :

Ruby on Rails

  1. #1
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut Un tableau via une classe
    Bonjour j'ai une définition qui me fais un tableau dans un contrôleur :

    Code Contrôleur : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
      def tableauReponse(mot,tableau)
        recupTableaux = tableau.split(",")
        recupTableaux = recupTableaux.sort_by{rand}
        recupTableaux = recupTableaux[0,2]
        recupTableaux.push(mot)
        recupTableaux = recupTableaux.sort_by{rand}
        return recupTableaux
      end

    que j'initialise comme ceci

    Code Contrôleur : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    session['tableau1'] = tableauReponse(session['devinette1'].reponse,session['devinette1'].solution)


    Pour l'afficher dans un select

    Code RHTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><%= select :r, :tab1 ,session['tableau1']%></td>

    Ayant besoin de ce bout de définition dans plusieurs contrôleurs, j'ai voulu en faire un classe

    Code RUBY-CLASSE : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    class Tableau_reponse
      def tableau(mot,tableau)
        recupTableaux = tableau.split(",")
        recupTableaux = recupTableaux.sort_by{rand}
        recupTableaux = recupTableaux[0,2]
        recupTableaux.push(mot)
        recupTableaux = recupTableaux.sort_by{rand}
        return recupTableaux
     
      end
    end

    que j'initialise comme ceci

    Code Contrôleur : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tab1 = Tableau_reponse.new
    session['tableau1']= tab1.tableau(session['devinette1'].reponse,session['devinette1'].solution)

    Mais malheureusement dans mon select cela ne fonctionne pas, puisqu'il ne reconnais pas un tableau, mais un objet(logique).

    Ma question comment pouvoir réutiliser ce bout de définition dans tout les contrôleurs.

    Merci de votre aide

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Il te suffit de mettre ta méthode dans ton ApplicationController ainsi tous les controleurs en bénéficieront

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Il me semblait logique de le mettre dans /app/model.

    Comme je ne respectais pas la convention, il faut le loader comme un module, sauf que dans la convention rails cela ce fait comme ceci :

    Code RUBY : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     model :NomFichier

    Je n'avais pas penser au applicationContrôlleur.

    Merci de ton aide.

    MaitrePylos

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Attention, la solution proposée ne tient pas compte du contexte ! Si conceptuellement tu as besoin de créer un model, alors tu dois créer un model.

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Oui bien sûr

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/04/2015, 18h47
  2. tableau d'une classe
    Par chama dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 23/08/2006, 19h39
  3. Mise à jour d'une controle via une classe.
    Par Andry dans le forum Delphi
    Réponses: 4
    Dernier message: 23/06/2006, 15h00
  4. Comment définir un tableau dans une classe?
    Par Pragmateek dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 30/04/2006, 20h34
  5. tableau dans une classe
    Par blastmanu dans le forum C++
    Réponses: 6
    Dernier message: 18/04/2006, 14h18

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