Independientemente de si es una buena práctica o no, ¿cómo puedo llamar dinámicamente los métodos de acceso en Ruby?Cómo llamar dinámicamente a los métodos de acceso en Ruby
He aquí un ejemplo de clase:
class Test_Class
attr_accessor :a, :b
end
puedo utilizar el método Object.send para leer la variable ...
instance.a = "value"
puts(instance.send("a"))
# => value
Pero estoy teniendo un mal rato tratando de escribir eso. Estos tiro "número incorrecto de argumentos (1 a 0) (ArgumentError)"
instance.send("a", "value")
y
instance.method("a").call("value")
Por favor, me ayudan a Stackoverflow!
Obras, genial! Supongo que el signo igual es parte del nombre del método? –
Sí, el signo igual se utiliza de forma convencional para definir métodos de establecimiento en Ruby. Sin embargo, usaría un símbolo en lugar de una cadena. 'instance.send (: a =," value ")' –
Sí. attr_accessor realiza dos métodos: def v; @v; fin y def v = (valor); @ v = valor; end – Angela