2009-01-04 1 views
2

가장 이상한 것입니다. 어제 레일에 WEBrick 디버거를 실행하면 내가 좋아하는 일을 할 수있는 'UID는'거기에 사용자 ID를 가지고 전달 된 인수가 다음내 레일 앱에서 쿠키를 읽을 수는 있지만 설정할 수는 없습니다

cookies[uid] 

나를 돌려 줄 것으로 기대

cookies[uid] = s.session_id 

, 말 :

29b93443d9ec18168a26e1ab12957b0dd0b799ff 

오늘 나는 항상 'nil'을 반환합니다. 나는 기존의 가치를 잘 읽을 수있다.

cookies.keys 

에 나열된 키 중 하나를 선택하면됩니다.

이 동작에 대해 가능한 설명이있는 사람이 있습니까? 매우 화가 났고 Google 검색에서 답을 찾지 못했습니다.

답변

4

원래 질문자는 여기에 있습니다. 그 쿠키를 설정할 수 있다는 것이 밝혀졌습니다. 문제는 디버거에

cookies[:key] 

을 입력하면 브라우저에서 읽은 쿠키의 값을 제공하는 것 같습니다. 그동안 가치가 저장되는 위치를 모르지만 브라우저에서 쿠키를 검사하면 내 변경 사항이 실제로 있음을 확인할 수 있습니다. 유용, 쿠키 [: 키] 지정의 값을 반환합니다, 그래서 당신은 아마 제가 전에 그들을 볼 수 있다고 생각했다 내가 모르는

@future_value = cookies[:key] = { 
           :value => 'new value', 
           :expires => @really_soon 
           } 

처럼 뭔가를 할 수!

1

또한 Rails가 키를 설정할 때 문자열을 문자열로 변환하기 때문에 기호가 아닌 문자열을 사용하여 쿠키를 읽어야합니다.

cookies[:key] = "value" 
cookies[:key] # => nil 
cookies['key'] # => "value" 
관련 문제