Sen*_*ran 196
Rails 5文档的摘录:
Cookie通过ActionController#cookies读取和写入.
正在读取的cookie是随请求一起收到的cookie,正在写入的cookie将随响应一起发送出去.读取cookie不会使cookie对象本身返回,只会获取它所拥有的值.
写作的例子:
Run Code Online (Sandbox Code Playgroud)# Sets a simple session cookie. # This cookie will be deleted when the user's browser is closed. cookies[:user_name] = "david" # Sets a cookie that expires in 1 hour. cookies[:login] = { value: "XJ-122", expires: 1.hour } # Sets a cookie that expires at a specific time. cookies[:login] = { value: "XJ-122", expires: Time.utc(2020, 10, 15, 5) } # Sets a "permanent" cookie (which expires in 20 years from now). cookies.permanent[:login] = "XJ-122"
[...]
设置cookie的选项符号是:
:expires
- 此cookie到期的时间,作为Time或ActiveSupport :: Duration对象.[...]
pag*_*man 18
您的问题可能与此问题有关: 如何在Rails中动态设置基于cookie的会话的到期时间
其中一条评论指向弃用SlideSessions:
"..如果您需要通过应用程序中的所有控制器设置会话的有效期,只需将以下选项添加到config/intializers/session_store.rb文件中:
Run Code Online (Sandbox Code Playgroud):expire_after => 60.minutes
如果需要在不同的控制器或操作中设置不同的到期时间,请使用以下代码或某些before_filter:
Run Code Online (Sandbox Code Playgroud)request.session_options = request.session_options.dup request.session_options[:expire_after]= 5.minutes request.session_options.freeze
需要复制哈希只是因为它已经在那时被冻结了,即使至少修改了:expire_after是可能的并且可以完美地工作......"
我希望有所帮助.:)