2011-02-17 34 views
5

我試圖改變濾波器之前在使用者所在位置的一個cookie,但我有問題:問題Rails中更改Cookie值3

該Cookie被設置爲1,正確,如果它不存在,但對於任何後續請求,將不會永久保存並恢復爲1。

def remember_location(loc = nil) 
    cookies.permanent[:location] = 1 if cookies[:location].nil? 
    loc = Location.find(loc).try(:id) rescue nil 
    unless loc.nil? 
     # cookies.delete :location # => this doesn't work either 
     cookies.permanent[:location] = loc 
    end 
    cookies[:location] 
    end 

回答

1

這是問題所在。之後我輸入的位置出現了Rails錯誤,因爲數據庫沒有完全填充。除非整個端點請求成功完成,否則Cookie實際上不會保存。

在查看ActionDispatch :: Cookies的源代碼後,肯定會出現這種情況:http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html