Просто следите за тем, как я это сделал и почему:
Rule
из MonoBehaviour
, чтобы избежать отслеживания создания и удаления объектов gameObjects, которая оказалась болью. Invoke
не существует в родовых классах, я заменил его отражением, как описано здесь здесь Используйте session
, а не cookies
. Вам не нужно его расшифровывать, рельсы обрабатывают это для вас. Создайте сеанс так же, как и вы:
session[:test] = Array.new
, и когда вам это нужно, обратитесь к нему, как обычно
session[:test]
# => []
«Rails way» - использовать JSON.generate(array)
, так как это то, что используется во втором примере в документах Cookies:
# Cookie values are String based. Other data types need to be serialized.
cookies[:lat_lon] = JSON.generate([47.68, -122.37])
Источник: http: // api. rubyonrails.org/classes/ActionDispatch/Cookies.html
Если вы хотите его прочитать, просто используйте JSON.parse cookies[:lat_lon]
, например, и он предоставит вам массив.
При записи в файл cookie я обычно конвертирую массив в строку.
def save_options(options)
cookies[:options] = (options.class == Array) ? options.join(',') : ''
end
Затем я конвертирую обратно в массив при чтении файла cookie.
def options_array
cookies[:options] ? cookies[:options].split(",") : []
end
I «Не уверен, что это« правильный путь », но он работает хорошо для меня.
ShowDetails,TRUE
). Разумеется, вы также можете изменить разделитель на что-то более «безопасное», если хотите.
– Stenerson
3 December 2013 в 03:50