2013-04-18 44 views
0

所以我試圖通過餅乾之間的路線一些字符串,但他們不斷得到重置,他們不會傳遞。這裏是我的代碼:Sinatra餅乾在路線之間重置

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],甚至用引號代替使用符號。

+0

你如何設置cookie?你是否需要助手:'require「sinatra/cookies」'? – fmendez

+0

是的,安裝了Sinatra Contrib – TakaGoto

回答

0

我認爲這是因爲你在一條路徑上設置了一個cookie並在另一條路徑上讀取它。從cookie的角度來看,/start_game被認爲是您網站與/game不同的一部分。您可以通過在/級別設置cookie解決這個問題:

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

你不應該需要改變,你讀回(因爲任何其他的路徑是/子路徑)的方式。