Rails cookies,设置开始date和过期date

导轨cookies

我需要使用cookie设置开始date和过期date,

例如,一旦添加的项目达到第三天,该项目应该过期。

3 Solutions collect form web for “Rails cookies,设置开始date和过期date”

Cookies是通过ActionDispatch#cookies (Rails 3及以下的ActionController#cookies)读取和写入的。 这个答案中的文字是从上面的API文档链接引用的。

正在读取的cookie是与请求一起收到的cookies,正在写入的cookie将随响应发送出去。 读取cookie不会获取cookie对象本身,只是它保存的值。

编写示例:

# Sets a simple session cookie. cookies[:user_name] = "david" # Sets a cookie that expires in 1 hour. cookies[:login] = { :value => "XJ-122", :expires => 1.hour.from_now } 

阅读示例:

  cookies[:user_name] # => "david" cookies.size # => 2 

删除示例:

  cookies.delete :user_name 

请注意,如果您在设置Cookie时指定了一个域名,则在删除Cookie时还必须指定域名:

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

设置Cookie的选项符号是:

 * :value - The cookie's value or list of values (as an array). * :path - The path for which this cookie applies. Defaults to the root of the application. * :domain - The domain for which this cookie applies. * :expires - The time at which this cookie expires, as a Time object. * :secure - Whether this cookie is a only transmitted to HTTPS servers. Default is false. * :httponly - Whether this cookie is accessible via scripting or only HTTP. Defaults to false. 

你的问题可能与这个问题有关: 如何在Rails中dynamic设置基于cookie的会话的到期时间

其中一条评论指向“ 弃用SlideSessions” :

“..如果需要通过应用程序中的所有控制器设置会话的到期时间,只需将以下选项添加到config / intializers / session_store.rb文件中即可:

 :expire_after => 60.minutes 

如果您需要在不同的控制器或操作中设置不同的过期时间,请使用以下代码或before_filter:

 request.session_options = request.session_options.dup request.session_options[:expire_after]= 5.minutes request.session_options.freeze 

散列的重复只是因为它已经被冻结在这一点上,即使修改至less:expire_after是可能的,并且工作完美…“

我希望有帮助。 🙂

值得注意的是,目前还不可能为cookie设置启动时间。 Cookie集始终处于活动状态。

  • 如何抑制Rails控制台/ irb输出
  • 使用RSpec来检查是否有其他对象的实例
  • 如何获得主动logging的最后N个logging?
  • WARN无法确定响应主体的内容长度。 设置响应的内容长度或设置响应#chunked = true
  • 轨道上的ruby/ruby内存泄漏检测
  • 如何在Ruby中编写一个switch语句
  • Ruby中的一个class轮,用于显示提示,获取input和分配给variables?
  • 如果string为空,则返回一些默认值
  • 如何“自我logging”可以编码而不恼人?
  • 错误:无法在小牛上构buildgem原生扩展
  • 我如何得到一个Ruby类的名字?