J'ai regardé haut et bas et peut-être que je suis juste un peu hors de la pratique mais je n'arrive pas à trouver comment faire ce qui suit. J'ai une chaîne/symbole, par exemple "a"
ou :a
. La classe, B
, contient un membre de données, @a
. Je cherche à accéder au membre de cette façon:Accès membre par chaîne dans Ruby?
def method object_of_class_B, string_or_symbol_referencing_the_member
object_of_class_B.some_other_method string_or_symbol_referencing_the_member = 010
end
donc je peux appeler:
method c, :a
et ont le même effet que si je l'avais écrit:
c.a = 010
Can Quelqu'un me pointe-t-il dans la direction d'une solution? Est-ce que j'ai complètement raté une pièce clé de Ruby dans mon apprentissage?
Cela n'a que le même effet que l'appel 'C.Un = « nouveau value'' si le '' a = méthode définit l'instance variable '@ et ne fait rien a' autre. Si 'c' est, par exemple, un objet enregistrement actif, l'utilisation de instance_variable_set n'aura pas l'effet désiré. – sepp2k
Bien qu'à la réflexion, l'OP a dit qu'il avait une variable d'instance @a. Donc, peu importe ... – sepp2k
Vous avez raison. @xuinkrbin devrait être familier avec la classe avec laquelle il «tripote». – Jamie