2012-07-23 24 views

回答

5

沒錯,只有cookie名稱cookie值被返回。

這不是軌道或PHP的一個缺點,它在RFC 6265這樣定義的:

注意,不返回的cookie的屬性。特別是, 服務器無法單獨確定cookie標頭何時會過期,cookie的有效期限爲哪個主機,其中的 路徑Cookie是否有效,或者cookie是否使用安全或HttpOnly屬性設置爲 。

0

雖然接受的答案是正確的,我來到這裏是因爲我想確保我的應用程序設置一個永久餅乾(在遙遠的未來一個截止日期),而不是一個正常的。

如果您想驗證是這種情況(和你不關心確切的截止日期),你可以設置一個這樣的預期(該示例使用Mocha寶石):

ActionDispatch::Cookies::PermanentCookieJar.any_instance.expects(:[]=).with(:key, "value").once 

這個期望會通過一個cookies.permanent[:key] = "value"的呼叫,但會失敗cookies[:key] = "value"

它也適用於簽名餅乾(cookies.permanent.signed[:key] = "value")。但是,請注意,簽署cookie將有它的價值加密基於應用程序的secret_key_base,所以你必須將預期調整到類似

ActionDispatch::Cookies::PermanentCookieJar.any_instance.expects(:[]=).with(:key, anything).once 

代替。