Sinatra cookie在路由之间重置

时间:2013-04-18 18:53:02

标签: ruby-on-rails ruby sinatra

所以我试图在路由之间通过cookie传递一些字符串,但是它们不断被重置并且它们不会被传递。这是我的代码:

post '/start_game' do
  @game = TicTacToe::Game.new
  cookies[:board] = @game.board.slots
  redirect '/game'
end

post '/game' do
  @slots = cookies[:board]
end

我也尝试过request.cookies [:board],甚至使用引号而不是使用符号。

1 个答案:

答案 0 :(得分:0)

我认为这是因为您在一条路径上设置cookie并在另一条路径上读取它。从Cookie的角度来看,/start_game被视为您网站的另一部分/game。您可以通过将Cookie设置为/级别来解决此问题:

response.set_cookie(:board, { :path => '/' })

您不需要更改回读的方式(因为任何其他路径都是/的子路径。)