#ruby-on-rails #devise #cancan
#ruby-on-rails #разработать #cancan
Вопрос:
Я использую devise / cancan для своего приложения, и все довольно хорошо — при условии, что пользователь создает учетную запись и входит в систему.
Что я хотел бы сделать, так это разрешить пользователю начать работу без создания учетной записи. А затем зарегистрируйтесь, если они действительно хотят сохранить свою работу.
Кто-нибудь сталкивался с этим раньше? Должен ли я выяснить, как создавать фиктивные учетные записи с помощью devise? Или разрешить неавторизованным пользователям доступ к созданию моделей в моем приложении через CanCan?
Я мог бы подробно рассказать о том, как я думал о подходе к этому, но мне кажется, что это довольно очевидный вариант использования, для которого кто-то придумал хорошее решение.
Заранее спасибо, Майк
Ответ №1:
Если вы предпочитаете создавать фиктивные учетные записи, вам придется каким-то образом отслеживать пользователя с помощью cookie и кэшировать значения в этом cookie в вашей базе данных. Cancan допускает гостевые учетные записи с помощью модели способностей. Например:
user ||= User.new # Guest user, for users who are not registered or don't have an account yet
Этого достаточно, чтобы вы начали с применения разрешений для незарегистрированных пользователей. Обратите внимание, однако, что отслеживание только с помощью файлов cookie не очень надежно и может привести к некоторому типу угрозы безопасности (например, с помощью взлома файлов cookie). Пользователь однажды также может решить удалить свои файлы cookie.
Если потребуется, я бы предложил разрешить пользователю минимальное взаимодействие с гостевой учетной записью и максимально мотивировать пользователя регистрироваться в Devise.
Надеюсь, это поможет!
Комментарии:
1. Спасибо, пока реализовал это таким образом. Кажется, пока все идет гладко.
Ответ №2:
На самом деле я рассматриваю ту же проблему, у меня есть приложение для планирования, которое создает календарь. Чтобы решить проблему, я думаю, что вы используете
user ||= User.new
Как было предложено выше, с использованием файлов cookie для передачи данных в базу данных, как только пользователь создает учетную запись.
Это означало бы, что вам не придется беспокоиться об удалении файлов cookie, потому что они создадут учетную запись, если захотят сохранить данные.