如何使用Ruby编程语言检测cookie是否存在?

时间:2010-01-06 23:40:57

标签: ruby apache cookies cgi

我知道如何使用CGI和Ruby读取cookie,但问题是,如果我尝试读取cookies.value [0],当它不存在时,它会破坏我的程序。所以我需要检查cookie是否在那里首先阅读。我无法在互联网上找到这个答案。

请帮助,谢谢, 亨利。

2 个答案:

答案 0 :(得分:1)

Ruby CGI doc说:

  

自动从请求中解析HTTP Cookie。它们可以从cookies()访问器获得,它从cookie名称返回一个哈希值到CGI :: Cookie对象。

如果是这种情况,那么cookie只是存储在常规哈希中。您可以使用常规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

答案 1 :(得分:0)

这对我来说很有用。

- if cookies().key?("cookieName")
  p Cookie value is #{cookies()["cookieName"]}
- else
  p "Cookie does not exist."
end

如果存在cookie,首先会导致true