我知道如何使用CGI和Ruby读取cookie,但问题是,如果我尝试在不存在的情况下读取cookies.value [0],它会中断我的程序。所以我需要检查cookie是否在那里先阅读。我无法在互联网上的任何地方找到这个答案。如何使用Ruby编程语言检测cookie是否存在?
请帮助,谢谢, 亨利。
我知道如何使用CGI和Ruby读取cookie,但问题是,如果我尝试在不存在的情况下读取cookies.value [0],它会中断我的程序。所以我需要检查cookie是否在那里先阅读。我无法在互联网上的任何地方找到这个答案。如何使用Ruby编程语言检测cookie是否存在?
请帮助,谢谢, 亨利。
Ruby CGI doc的说:
HTTP Cookie是自动从请求解析。它们可以从cookies()访问器获得,该访问器从cookie名称返回一个哈希到CGI :: Cookie对象。
如果是这种情况,那么cookies就存储在一个常规的散列中。您可以使用常规Hash API检查目标cookie的存在,包括Hash.key?():
if cgi.cookies().key?("mycookie")
p "Cookie value is #{cgi.cookies()["mycookie"].value}"
else
p "Cookie does not exist."
end
这工作我用苗条。
- if cookies().key?("cookieName")
p Cookie value is #{cookies()["cookieName"]}
- else
p "Cookie does not exist."
end
首先将导致true
如果cookie的存在。
是否可以向我展示一段代码来检查名为“mycookie”的cookie是否存在?我知道在PHP中,你可以使用像if(isset [cookiename]) 感谢您的答案 – Henry 2010-01-06 23:48:11
我实际上正在写一个,而你离开了那个评论:-) – 2010-01-06 23:50:58
供参考:我写这个例子写意;我没有真的跑过它。它应该足够接近让你走,但要留意(轻微)错误。 – 2010-01-06 23:52:30