0
我使用Rails會話來存儲我從Mechanize獲得的cookie_jar。這讓我可以調用web服務並維護它發回的cookie。Rails會話需要「檢查」被稱爲
類發生在它的構造會話,所以我傳遞Rails的會話。然後,當我撥打服務,我加載cookie_jar(如果我有一個),如:
agent = WWW::Mechanize.new
agent.cookie_jar = YAML.load(@session[COOKIE_JAR]) if @session.has_key? COOKIE_JAR
一旦我做進行調用,我再次存儲cookie_jar這樣的:
@session[COOKIE_JAR] = agent.cookie_jar.to_yaml
雖然我很想存儲「代理」,但它不能被序列化(因此無法進入會話)。這裏是時髦的部分: 如果我在我的類構造函數中調用「session.inspect」(或者在檢查會話是否有我正在查找的密鑰之前的任何時候),則一切正常。刪除對「session.inspect」的調用,它不再工作。
任何人都知道爲什麼Rails會話的行爲是這樣嗎?