Процесс входа в систему с помощью Hotwire

В настоящее время я разрабатываю свое первое приложение с помощью Rails и Hotwire. Он включает в себя форму комментариев, видимую для всех пользователей. Когда пользователи, не прошедшие проверку подлинности, отправляют его, я хотел бы открыть форму входа (управляемую Devise) в модальном режиме поверх формы.

В настоящее время я придумал следующее решение, но оно кажется довольно хакерским, и мне интересно, думал ли кто-нибудь о более чистом решении для этого, вероятно, очень распространенного варианта использования?

  1. у меня есть <turbo-frame id="modal>в моем макете и моей форме входа
  2. в _form.html.erbчастично, я проверяю, вошел ли пользователь в систему, и если нет, я добавляю data-turbo-frame="modal"атрибут к форме.
  3. В моем createдействие, я проверяю, вошел ли пользователь в систему, и если нет, я перенаправляю его на new_user_session_path

Опять же, это делает работу, но мне не нравится тот факт, что это требует изменений как в представлениях, так и в контроллере, что затрудняет масштабирование (на случай, если я захочу применить тот же поток к другим формам).

Большое спасибо!

0 ответов

Другие вопросы по тегам