Могу ли я заставить сеанс rails перезагрузиться из строки? - PullRequest
1 голос
/ 06 августа 2009

У меня есть стороннее приложение (индикатор выполнения загрузки - swfupload), которое я использую с rails 2.3.3, которое не может передавать информацию о сеансе или файлы cookie. Однако я могу упаковать данные сеанса из моего приложения в URI, который он будет использовать для загрузки файла, и получить его при получении файла.

Проблема в том, что ни один из волшебных хаков, которые я вижу, не работает в сети с 2.3.3. Я не знаю конкретных деталей того, почему, но я даже попробовал минимальное демонстрационное приложение RESTful, которое использует swfupload, и оно выглядит так же, как мое.

Все, что мне нужно, это способ перезагрузить сеанс из строки, которая, как известно, содержит данные сеанса. Что-то вроде:

if session[:user_id]
  do stuff
else
  session.reload(session_string_from_uri)
end

Вы поняли идею.

Нет, мне не интересно пробовать еще одно решение для загрузки для Rails. Мне хватило их неудач, и я собираюсь придерживаться этого решения, потому что простой ответ на мой текущий вопрос решит мою проблему.

Ответы [ 2 ]

0 голосов
/ 26 января 2010

Для восстановления сеанса из данных, опубликованных вместе с запросом Flash, необходимо использовать промежуточное программное обеспечение стойки. Вот очень хорошая статья, объясняющая это: http://jetpackweb.com/blog/2009/10/21/rails-2-3-4-and-swfupload-rack-middleware-for-flash-uploads-that-degrade-gracefully/comment-page-1/

0 голосов
/ 06 августа 2009

Не уверен, если это вариант для вас, но мое исправление swfuploader было легко, потому что у нас есть сеансы БД.

_options['session_id'] = params[ _options['session_key'] ]   
session = Session.find_by_session_id(_options['session_id'])      
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...