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 :

acceder a un attribut d'une classe par une variable (string avec le nom de l'attr)


Sujet :

Ruby on Rails

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 68
    Par défaut acceder a un attribut d'une classe par une variable (string avec le nom de l'attr)
    J'ai une question, peut-etre c'est impossible a faire?? ou peut-etre c'est tres simple mais je reste bloquée...

    J'ai lu le post recent intitulé "acceder a une classe par une variable" et je veux faire a peu pres la même chose sauf que je veux acceder a un attribut de ma classe dans une methode.
    La fonction 'constantize' ne fonctionne donc pas (c'est pas a une constante que je veux acceder).
    La seule methode que j'ai trouve qui fonctionne c'est d'utiliser 'eval' mais je voudrai trouver une autre façon de le faire.

    J'ai ma classe Permission avec des attributs :
    config_read
    config_write
    config_new
    config_delete
    etc...

    et j'ai une chaine str="config_..."
    Je veux reccuperer la valeur de l'attribut correspondant avec une proc de ma classe Permission

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class Permission < ActiveRecord::Base
      ...
      def get_perm(str)
        # ici reccuperer la valeur de l'attribut correspondant a str
      end
      ...
    end

    Une idée??

  2. #2
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    on vas imaginer que tu aies un objet Dog issu de ta DB, et que cet objet à un attribut "age" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    my_pet = Dogs.find :first
     
    my_string = "age"
     
    my_pet.send(my_string) # => l'age de ton chien
    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

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 68
    Par défaut
    J'avais pourtant bien vu cette fonction quelque part mais j'avais pas bien compris a quoi elle servait...

    C'est quand même beaucoup mieux que mon eval(my_string)....

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

Discussions similaires

  1. Remplacer une requête sur une class par une valeur constante ?
    Par Lillie CHARLOTTE dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2015, 09h59
  2. Eval d'une propriété d'une classe dans une classe
    Par bizet dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/10/2008, 09h43
  3. Réponses: 2
    Dernier message: 08/06/2007, 11h21
  4. Réponses: 2
    Dernier message: 17/04/2007, 17h14
  5. Réponses: 11
    Dernier message: 05/10/2006, 13h20

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