Indipendentemente dal fatto che si tratti di buone pratiche o meno, come posso chiamare dinamicamente i metodi di accesso in Ruby?Come chiamare dinamicamente i metodi di accesso in Ruby
Ecco un esempio di classe:
class Test_Class
attr_accessor :a, :b
end
posso utilizzare il metodo Object.send per leggere la variabile ...
instance.a = "value"
puts(instance.send("a"))
# => value
ma sto avendo un momento difficile cercando di scrivere a esso. Questi due "numero errato di argomenti (1 per 0) (ArgumentError)"
instance.send("a", "value")
e
instance.method("a").call("value")
Please help me StackOverflow!
Works, grande! Immagino che il segno di uguale faccia parte del nome del metodo? –
Sì, gli uguali firmano nel modo convenzionale per definire i metodi setter in Ruby. Vorrei usare un simbolo piuttosto che una stringa. 'instance.send (: a =," value ")' –
Sì. attr_accessor effettua due metodi: def v; @v; fine e def v = (valore); @ V = valore; fine – Angela