鲁努比在这里。我有一个Login
使用net/IMAP
库登录到 gmail 的类。发生的事情是我创建了该类的一个新实例,例如:
a = Login.new("username", "gmail.com", "passw")
然后,我正在研究其他将使用邮箱做一些“东西”的课程。问题是@imap
我在 Login 中定义的变量似乎已经消失了(由于我假设的范围)。
这是@imap
在 Login 类中声明的方式:
@imap = Net::IMAP.new('imap.gmail.com',993,true,nil,false)
所以这:
@today = Date.today
@received_today = imap.search(["SINCE", @today.strftime("%d-%b-%Y")]).count.to_s
...返回错误。这是我在玩这个时遇到的两个错误。第一个是我使用imap
的时候,第二个是我尝试的时候@imap
:
NameError: undefined local variable or method `imap' for #<Object:0x10718d2a8>
NoMethodError: undefined method `search' for nil:NilClass
处理这种情况的最佳做法是什么?是在创建 Net::IMAP 的新实例的同一类中定义我的方法的唯一解决方案吗?声明@imap
为全局变量$imap
是一种不好的做法吗?如此困惑,我敢打赌答案也非常简单明了,但我只是没有看到。谢谢!