2011-06-05 52 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"