0
我有一個Ruby類的初始化方法:缺少`@`的實例變量
def initialize(params)
@foo = private_method(params || {})
end
在同一個班級後來,我看到以下內容:
def new_method_for(user)
foo.each { |f| other_method(f) }
end
爲什麼是@
失蹤從foo前面other_method
?當我在foo.each...
之前放入一個binding.pry時,foo和@foo都被定義了。
你的類可能已經一個getter定義爲'@ foo'。也就是說,要麼使用訪問器定義(':attr_reader foo'或':attr_accessor foo')或顯式的'def foo'實例方法,'foo'可能被定義爲getter。你沒有顯示所有的代碼,很難說。 – lurker
因爲它是'attr_accessor'或'attr_reader',並且有'foo' getter方法。 –
是的,有一行'attr_reader:foo'。謝謝! – rainslg