2012-01-07 4 views
9

다중 배열 유형의 데이터를 쿠키에 어떻게 저장합니까? 예를 들어배열을 쿠키에 저장하는 방법은 무엇입니까?

: [[1, 'foo'], [2, 'bar'], [3, 'foobar']]

나는 같은 단일 차원 배열 작업을 얻을 수

:

cookies[:foobar].split(',').include?("1") 

1이 내부에 있는지 확인하기 위해 수행 한 후

cookies[:foobar] = { :value => cookies[:foobar] << ",1" } 

및 쿠키. 너무 다차원 배열을 가지고이 문제를 어떻게 해결할 수 있을지 모르겠다.

답변

12

어레이를 json으로 직렬화하고 쿠키에 저장하십시오. 두 가지 방법에서

봐 :

ActiveSupport::JSON.encode(object) 
ActiveSupport::JSON.decode(string) 
+0

흠, 레일 쿠키는 이미 데이터를 디코딩하지 않는 이유는 무엇입니까? 액티비티 지원 :: JSON.encode ({: color => [ "red", "green", "yellow"]}) : : 만료 => 24 시간. from_now}''{'color "=> [red,"green ","yellow "]}'를 반환합니다. 디코딩 할 필요가 없나요? –

+0

문자열 데이터를 항상 배열 객체로 디코딩해야한다고 생각합니다. – 4ndrew

1

가장 쉬운 방법은 YAML, marshalling 또는 json과 같은 rails/ruby가 제공하는 직렬화 방법 중 하나를 사용하는 것이 가장 쉽다.

관련 문제