J’ai passé du temps à examiner le code. Je pense que quelque chose comme ceci (attention : il est très probable que cela ne fonctionne pas car je ne l’ai pas encore essayé) fonctionnerait pour permettre à l’utilisateur de poster une réponse avec juste un e-mail. J’apprécierais tous vos commentaires.
Je ne suis pas particulièrement sûr que ce soit la meilleure façon de créer un utilisateur temporaire. Je n’ai trouvé aucune méthode qui crée spécifiquement des utilisateurs temporaires cependant.
class SomePluginController < ApplicationController
# Assurez-vous qu'il y a un utilisateur temporaire dans la base de données
def ensure_user
# Vérifiez si un utilisateur temporaire existe
user = User.where(staged: true).with_email(params[:email].strip.downcase).first
# Créez un utilisateur temporaire manuellement
if !user
user = User.new
user.staged = true
user.email = params[:email]
user.active = false
user.save!
end
user
end
# Suivre un sujet en tant qu'utilisateur temporaire
def staged_watch
user = ensure_user
topic = Topic.find(params[:topic_id].to_i)
TopicUser.change(user, topic.id, notification_level: params[:notification_level].to_i)
end
# Répondre à un sujet en tant qu'utilisateur temporaire
def staged_reply
user = ensure_user
manager = NewPostManager.new(user,
raw: params[:body],
topic_id: params[:topic_id])
result = manager.perform
end
end