Métodos de classe (rubi)
Novato aqui, tendo dificuldade em entender os métodos de Classe e por que não consigo fazer com que um atributo apareça corretamente na instância.
<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>
Quando eu uso o método de classecreate_with_attributes
(no animal.2), espero"white"
aparecer quando euputs animal2.color
.
Parece que eu o defini usandoattr_accessor
Assim como eu tenho "ruído", e ainda o ruído aparece corretamente, enquanto a cor não. Eu não recebo um erro quando executo este programa, mas o atributo .color simplesmente não está aparecendo. Eu acredito que é porque de alguma forma eu o rotulei incorretamente no código.