2011-06-05 58 views
20

我需要在我的ApplicationController中設置cookie,但我不知道如何。我試過使用餅乾 - 什麼都沒有,使用ActionController :: Cookies - 什麼都沒有。 我不需要更多設置和獲取cookie,但我需要的是將它們設置爲ApplicationController如何在ApplicationController中設置Cookie?

編輯:

找到了答案:request.cookies['help'] = 'yes'

回答

26

你說的在應用控制器設置cookie將意味着什麼呢?您可以在瀏覽器中設置與某些控制器操作相對應的Cookie。如果您想爲所有操作設置Cookie,則可以考慮使用before過濾器並將該過濾器應用於所有控制器操作。

您可以設置如下圖所示刪除cookies:

cookies[:key] = { 
     :value => 'a yummy cookie', 
     :expires => 1.year.from_now, 
     :domain => 'domain.com' 
    } 

    cookies.delete(:key, :domain => 'domain.com') 

請注意,如果你指定一個:設置cookie時域,還必須刪除cookie時指定域。

例如cookies[:user_name] = "david"

+1

您也可以使用Cookie'cookies.signed [:鍵] = ...'有加密,以防止它的cookie值從外部修改。 – 2012-12-15 11:04:28

+2

說明:'signed'不會加密密鑰以避免查看,只是修改。 'encrypted'將執行 – MCB 2016-08-05 22:46:21

+1

指向[documentation]的鏈接(http://api.rubyonrails.org/v5.1/classes/ActionDispatch/Cookies.html)。 – 2017-06-07 18:38:09

12

可以簡化你要掛了一段時間

cookies.permanent[:some_cookie] = "gingerbread"