Sinatra - response.set_cookie不起作用

时间:2011-02-22 12:28:16

标签: ruby cookies set sinatra

我需要为我的Sinatra应用程序使用cookie。如果我使用最简单的方法是有效的:

response.set_cookie('my_cookie', 'value_of_cookie')

但我需要一些选项,例如域名和过期日期,所以我试试这个:

response.set_cookie("my_cookie", {:value => 'value_of_cookie', :domain => myDomain, :path => myPath, :expires => Date.new})

不起作用。没有cookie。我非常需要这个......

请帮忙......谢谢!

1 个答案:

答案 0 :(得分:17)

http://sinatra-book.gittr.com/#cookies上的文档说使用set_cookie帮助程序,但在较新版本的Sinatra中(至少从1.2.0+开始,可能更早),您应该使用response.set_cookie来设置cookie。

response.set_cookie("my_cookie", :value => "value_of_cookie",
                    :domain => myDomain,
                    :path => myPath,
                    :expires => Date.new(2020,1,1))
cookie = request.cookies["my_cookie"]

<强>概要

不要将localhost设置为Cookie的域名,因为您需要将其设置为“”或“FALSE”