В моем приложении rails 2 у меня есть страница с фотографиями.На этой странице показа фотографий есть текстовое поле, в котором посетители могут оставлять комментарии к фотографии.
Если пользователь, который не вошел в систему, вводит комментарий и нажимает кнопку отправки, я хочу использовать оверлей входа / регистрации (илимодально) появляться.Как только они войдут в систему или зарегистрируются (через нашу собственную авторизацию или FB-соединение), я хочу, чтобы модал исчез и комментарий был отправлен.
У меня вопрос, как мне справиться с этим, сохраняя код DRY, CRUDи привержен MVC?
Некоторые варианты, которые я рассмотрел:
- Передача текста комментария в виде скрытого поля в форме входа / регистрации.Сохраните комментарий в сеансе / новое действие.Это не CRUD, и также не работает, если кто-то входит в систему через Facebook.
- Сохраните текст комментария как переменную сеанса, затем после входа в систему, когда страница перезагрузится, определите переменную сеанса в фотографии /показать действие и сохранить комментарий.Это не CRUD.
- Сделайте то же самое, что и выше, но определите переменную сеанса в представлении и сохраните комментарий.Это нарушает MVC.
- Полностью обработайте вход / регистрацию через AJAX, определите успешный ответ, а затем сделайте вызов, чтобы сохранить комментарий.Это нарушает MVC.
Имейте в виду, что такое поведение, при котором пользователь запрашивает вход в систему после отправки комментария, будет происходить по всему сайту на многих различных типах ресурсов (не только на фотографиях), поэтомуСУХОЕ решение важно, если это вообще возможно.