Métodos de clase (rubí)
Newbie aquí, me cuesta entender los métodos de clase y por qué no puedo obtener un atributo para que se muestre correctamente en la instancia.
<code>class Animal attr_accessor :noise, :color, :legs, :arms def self.create_with_attributes(noise, color) animal = self.new(noise) @noise = noise @color = color return animal end def initialize(noise, legs=4, arms=0) @noise = noise @legs = legs @arms = arms puts "----A new animal has been instantiated.----" end end animal1 = Animal.new("Moo!", 4, 0) puts animal1.noise animal1.color = "black" puts animal1.color puts animal1.legs puts animal1.arms puts animal2 = Animal.create_with_attributes("Quack", "white") puts animal2.noise puts animal2.color </code>
Cuando uso el método de clasecreate_with_attributes
(en animal.2), espero"white"
para aparecer cuando yoputs animal2.color
.
Parece que lo he definido usandoattr_accessor
al igual que tengo "ruido", y sin embargo, el ruido aparece correctamente mientras que el color no lo hará. No obtengo un error cuando ejecuto este programa, pero el atributo .color simplemente no aparece. Creo que es porque de alguna manera lo he etiquetado incorrectamente en el código.