Demander à l'utilisateur de definir le nom d'un objet - Ruby/Rails - Programmation
Marsh Posté le 18-05-2011 à 10:40:47
Tu veux que l'utilisateur choisisse le nom de la variable à laquelle sera affectée ta création d'objet, c'est ça ?
Si oui, tu viens sûrement de PHP et il n'y a pas de bonne justification à ce besoin, dis nous plutôt pourquoi tu penses avoir besoin de ce mécanisme.
Marsh Posté le 18-05-2011 à 10:49:01
Salut,
Quel est le but exactement? Parce que je vois pas du tout l'utilité d'un tel truc pour être franc..
Edit: Grilled..
Marsh Posté le 18-05-2011 à 11:19:47
Bonjour bonjour,
Dsl si je m'exprime en langage de béotien mais on fait ce qu'on pneu.
L'idée est d'avoir plusieurs instance du'une même classe (Adresse ici) que l'on pourrai appeler individuelement (adresse_de_bob par exemple) et que l'on puisse lister toutes les instances.
J'ai essayé avec un @name sauf que si le nom de l'objet et la valeur du @name sont différente ca fout le boxon...
En short je voudrai que le nom de l'objet soit le même que son @name ou pouvoir le stocker qqpart. typiquement quand je fais ca avec le @name, je liste les @name (ok) je demande à l'utilisateur lequel il veut charger et là, vu qu'il tombe sur l'objet qui a un nom différent de son @name (loi de Murphy oblige) ca ne marche pas...
Marsh Posté le 18-05-2011 à 11:29:40
A moins qu'il existe une méthode pour browser les instances existantes d'une classe donné (cherché, pas trouvé, même si ca simplifierai bien mon pb) ou d'y faire référence par son @name...
Marsh Posté le 18-05-2011 à 11:34:09
Ce que tu veux c'est un tableau, éventuellement un dictionnaire clé => valeur où la clé serais le nom de ton adresse (?) et la valeur ta référence vers l'objet créé. C'est quoi ton soft, un site RoR ou un programme en ligne de commande ? Comment tu obtiens ton identifiant d'adresse ?
Marsh Posté le 18-05-2011 à 11:34:34
Je n'ai toujours pas compris ce que tu veux faire. Pourquoi ne pas garder toutes tes instances dans un Array?
Edit: Je commence à en avoir marre de me faire griller
Marsh Posté le 18-05-2011 à 11:49:49
@LeRiton: exactement! je veux pouvoir accéder aux objets via leur nom (adresse ici). Je suis en ligne de commande (pour l'instant). Comment je fais ça? (je vais chercher juste apres avoir posté ce message mais si tu te sens d'expliquer gentiment à un newbie comment faire tu serai un a-mour =)
Encore une fois je ne sais pas comment acceder à "la reference vers l'objet créé"... je crois que c'est ca mon probleme (Cf being a noob) =)
l'idée originale (au sens de premiere et non de nouvelle) c'etait de demander à l'utilisateur comment il voulait l'appeler et de faire un gets.chomp.to_whatever...
@esox_ch: d'apres ce que j'ai compris tu propose la même solution (encore que je peux me tromper?). même question. EDIT: mais oui dans l'idée c'est exactement ce que je veux faire, je sais juste pas comment faire =)
Marsh Posté le 18-05-2011 à 11:59:46
Supposons que Address contient un champ name (en plus de ton street d'après ce que j'ai compris), et que le tout te soit donné à la création par l'utilisateur.
De ton côté, tu fais
Code :
|
ce qui stock dans une variable address la nouvelle instance. A chaque création, rien ne t'empêche de stocker cette nouvelle instance dans un tableau, soit par exemple après ta création
Code :
|
et au moment où tu as besoin de quelque chose, tu vas le chercher dans ton tableau
Code :
|
ou un truc du style, j'ai pas d’interpréteur sous la main.
Edit : esox_ch
Marsh Posté le 18-05-2011 à 12:21:57
Moui moui moui
résumons:
l'utilisateur fais
Code :
|
il doit aussi faire
Code :
|
ou bien je peux l'incorporer dans mon programe (ce que je voudrai pouvoir faire dans l'absolu). si c'est le cas, comment je récupère le "adresse"?
voila comment je voyais les choses avant de jeter cette bouteille à la mer:
Code :
|
...
voila voila
je pense qu'il y a un truc que j'ai loupé parceque ca me parrait évident que il y a plein de gens qui doivent utiliser ca tout le temps... non?
Marsh Posté le 18-05-2011 à 13:21:15
sleeping_banana a écrit : l'utilisateur fais |
Non, c'est écrit dans le source de ton programme, comme le reste des "instructions".
sleeping_banana a écrit :
|
Les deux lignes de codes sont dans ton programme, je vois pas où elles pourraient être autrement d'ailleurs. Comment récupérer "adresse" : bin c'est la variable que tu as défini à la ligne précédente.
Marsh Posté le 18-05-2011 à 14:47:39
okaaaaaaaaaaaaaaay
merci de ta patience, je suis un peu lent à la détente... ca doit etre la digestion... ou les bonbons japonais que mon frere ma ramené ils brillaient dans le noir...
bon. donc en gros tu suggere de tout mettre dans un hash ?
J'ai testé ca a l'air de faire ce que je veux... (c'est aussi ce que esox_ch suggerai, je vais essayer de faire comme ca
(je reviendrai t'em####er si je peux pas faire autrement )
Merci beaucoup en tout cas!
PS: si tu as encore deux minutes, je veux bien que tu m'explique pourquoi de temps en temps irb me renvoie tout un tas de répertoires... genre:
Code :
|
Marsh Posté le 19-05-2011 à 06:59:45
En fait tu serais même pas obliger de le rajouter toi même à l'array en faisant une Factory mais bon c'est un peu compliqué et overkill si le problème est juste d'éviter d'écrire adresses << adresse;
Et pourquoi tu parles de mettre ça dans un Hash? L'ordre a une importance? Parce que là LeRiton t'a fait voir comment le mettre dans un array
Pour irb: C'est parce que tu as tapé "tab" sur ton clavier, et donc ça a le même effet que dans Bash
Marsh Posté le 19-05-2011 à 13:51:10
Comment je fais un truc un peu propre sans utiliser de tabulation?
L'ordre n'a pas particulierement d'importance, et effectivmement un tableau ca marche tres bien =D
c'est quoi le principe des factory?
Marsh Posté le 19-05-2011 à 13:54:31
Bein tu utilises des Singleton
Marsh Posté le 18-05-2011 à 10:23:13
Bonjour, à tous!
Je suis tout nouveau ici donc: ET nouveau sur ruby donc: ^2
Je n'ai pas trouvé de réponse ailleurs, ni dans des tuto ni sur les forums...
Voila mon probleme: je souhaite demander à l'utilisateur de définir le nom d'un objet (d'une instance de classe pour etre precis).
Exemple simple:
Puis
SAUF que je veux que se soit l'utilisateur qui definisse que Adresse.new s'appelle adresse.
J'ai essayé toutes les combinaisons possibles avec gets mais je ne dois pas bien m'y prendre... A tel point que je commence à douter que ce soit possible (si c'est le cas je suis preneur d'une idée pour arriver au même résultat d'une autre façon of course!)
Des idées??