Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 更改rails默认cookie过期时间_Ruby On Rails_Cookies_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 更改rails默认cookie过期时间

Ruby on rails 更改rails默认cookie过期时间,ruby-on-rails,cookies,ruby-on-rails-4,Ruby On Rails,Cookies,Ruby On Rails 4,我知道如何在保存cookie时更改过期时间,我想知道的是如何更改默认值。 我的代码中有很多语句设置cookies,我必须将它们全部更改为30天后过期,所以我更愿意更改一些设置默认过期时间为30天的内容,以便它影响所有的cookies。 提前谢谢 更新 尝试使用: # config/initializers/session_store.rb MyApp::Application.config.session_store :cookie_store, key: '_your_app_session'

我知道如何在保存cookie时更改过期时间,我想知道的是如何更改默认值。 我的代码中有很多语句设置cookies,我必须将它们全部更改为30天后过期,所以我更愿意更改一些设置默认过期时间为30天的内容,以便它影响所有的cookies。 提前谢谢

更新 尝试使用:

# config/initializers/session_store.rb
MyApp::Application.config.session_store :cookie_store, key: '_your_app_session', expire_after: 30.days
但仍然不起作用。。。我想我知道问题是什么。当我在保存cookie时设置cookie过期时间时,它会出现在Firefox和Chrome上的“响应Cookies”下(此时它可以工作),但其余Cookies会出现在两个浏览器上的“请求Cookies”下。问题是我不知道rails是如何处理请求/响应的

这就是我保存cookies的方式,但它不起作用

cookies[:region] = params[:region]
这就是我使它工作的方式,但我更喜欢另一种方式来节省时间,使它在将来更容易编辑

cookies[:region] = { value: params[:region], expires: 30.days.from_now }

更新2:创建了一个新的rails应用程序以显示隔离的问题:

您可以将其保存在会话存储中:

# config/initializers/session_store.rb
MyApp::Application.config.session_store :cookie_store, key: '_your_app_session', expire_after: 30.days

嘿谢谢你的帮助,我认为这很有效,但我遗漏了一些东西。。在chrome“Inspect Element”菜单上,有效期为30天。但是如果我关闭浏览器并再次打开它,从cookies加载的值将再次显示为空白。有什么想法吗?我使用了
cookies[:region]={value:params[:region],过期时间:30.days.from_now}
并且它工作了,所以这不是浏览器的错。还有其他想法吗?我试着回到rails 3,但还是一无所获。我认为问题不在于你给我的代码,我认为是另外一回事。。我更新了问题,更好地解释了正在发生的事情。抱歉,如果我再次提问,但是您是否将
MyApp::Application
更改为应用程序的真实名称?是的,这部分没问题。您能否制作一个最小的Rails应用程序(在本例中仅为控制器)来显示您遇到的问题,并在问题中添加链接?完成,您可以在此处查看: