J'essaie d'obtenir l'appel de l'un de mes rédacteurs d'attributs de classe, mais pour une raison inconnue, il n'est jamais appelé. Voici un code qui clarifiera ceci:Appel des méthodes d'accès aux attributs à partir de la classe
class Test
attr_reader :test
def test=(val)
puts 'Called'
@test = val
end
def set_it(val)
test = val
end
end
obj = Test.new
obj.set_it 5
puts obj.test
=> nil
L'instruction puts à la fin produit 'nil'. L'ajout d'une instruction de débogage à tester = montre qu'il n'est jamais appelé. Qu'est-ce que je fais mal?
Mise à jour
Je récrit cette question en partie, comme je ne l'ai pas vraiment comprendre le problème quand je l'ai écrit. La question est donc beaucoup plus générale maintenant.
FYI, vous pouvez générer ces getters/setters en utilisant' attr_accessor: test' – rampion
Je sais, cela était juste un exemple. Dans le code, je travaillais avec le getter et le setter pour faire plus de travail. –
duplicata possible de [Pourquoi les setters rubis ont besoin de "soi". qualification dans la classe?] (http://stackoverflow.com/questions/44715/why-do-ruby-setters-need-self-qualification-within-the-class) –