Предупреждение: кое-что из этого может быть очень неправильным, поэтому, пожалуйста, дайте мне знать, если мои предположения неверны.
Вот что я пытаюсь сделать:
Я использую restful-аутентификацию для входа в систему. Однако, поскольку я использую flex / ruby_amf для своего пользовательского интерфейса, я должен отдельно аутентифицировать каждое соединение из flex.
Я решил сделать это, перенаправив экран входа на встроенную флэш-страницу, вставив идентификатор сеанса в качестве флэшвара. Приложение флэш-памяти отправляет идентификатор сеанса с каждым запросом, и фильтр «до» на всех соответствующих контроллерах проверяет, вошел ли пользователь, связанный с сеансом, идентифицированным идентификатором сеанса.
Я могу связать пользователя с сеансом, добавив столбец 'user_id' в таблицу сеансов и выполнив SQL-запрос типа "update session set set user_id ..." ", вызываемый из функции login.
Однако user_id обновляется только во второй раз, когда пользователь входит в систему. Небольшое расследование показало, что запись в таблице сессий еще не существует во время выполнения функции входа в систему.
Итак, если все до этого момента имеет смысл и соответствует передовым практикам и т. Д., Тогда мой вопрос:
В какой момент создается запись в таблице сеансов? Есть ли способ обновить объект сеанса в функции входа в систему и заставить rails записать user_id в базу данных для меня?
Поведение сеансов на рельсах для меня настоящая загадка. Буду признателен за любую помощь.
Спасибо.