RoR: как аутентифицировать пользователя перед POST - PullRequest
2 голосов
/ 29 апреля 2011

У меня есть форма, которую пользователи могут заполнить, и нажатие кнопки «Создать» выдаст запрос POST для создания новой записи в базе данных с данными формы.

Теперь только зарегистрированные пользователи должны иметь возможность создавать записи в базе данных, но я хочу, чтобы все пользователи могли заполнять форму.Только при нажатии «Создать» я хочу, чтобы мое приложение перенаправляло пользователей, которые не вошли на страницу входа.После входа в систему я хочу продолжить обработку запроса POST и создать запись в базе данных без необходимости повторного ввода всех данных формы пользователем.

Каков наилучший способ обработки этого?Поместить данные POST в сеанс?Но затем, после успешного входа в систему, я хочу создать запись базы данных в исходном контроллере / действии (чтобы не дублировать код), и кажется, что выполняется запрос POST из моего приложения (в методе after-success-login-method)странный.Есть идеи получше?

Спасибо!

1 Ответ

0 голосов
/ 29 апреля 2011

Вы не упоминаете, как вы выполняете аутентификацию, поэтому я подозреваю, что вы делаете это вручную.Если вы используете (и я настоятельно рекомендую вам это сделать) драгоценный камень, такой как Devise, для регистрации, вам просто нужно добавить помощника аутентификации Devise к вашим контроллерам, чтобы сделать это.Пользователь регистрируется, вы устанавливаете переменную идентификатора сессии, которая связана с ним / ней.Затем просто проверьте, зарегистрирован ли он / она.Если нет, то вы просто не разрешаете действие и перенаправляете.

...