2011-02-17 4 views
5

내가 필터 전에에서 사용자의 위치에 대한 쿠키를 변경하기 위해 노력하고있어하지만 문제가 오전 :문제 3

존재하지 않는 경우 올바르게 쿠키가 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

여기에 문제가있었습니다. 나중에 입력 한 위치는 DB가 완전히 채워지지 않았기 때문에 Rails 오류가 발생했습니다. 전체 엔드 포인트 요청이 성공적으로 완료되지 않으면 실제로 쿠키가 저장되지 않습니다.

ActionDispatch :: Cookies의 소스 코드를 살펴본 후 확실히 그럴 것 같습니다. http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html