He pasado un tiempo de calidad revisando el código. Creo que algo como esto (advertencia: es muy probable que no funcione ya que aún no lo he probado) funcionaría para permitir al usuario publicar una respuesta solo con un correo electrónico. Agradecería cualquier comentario que tengas.
No estoy seguro especialmente si esta es la mejor manera de crear un usuario provisional. Sin embargo, no he encontrado ningún método que cree específicamente usuarios provisionales.
class SomePluginController < ApplicationController
# Asegúrate de que haya un usuario provisional en la base de datos
def ensure_user
# Comprueba si existe un usuario provisional
user = User.where(staged: true).with_email(params[:email].strip.downcase).first
# Crea un usuario provisional manualmente
if !user
user = User.new
user.staged = true
user.email = params[:email]
user.active = false
user.save!
end
user
end
# Observa un tema como un usuario provisional
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
# Responde a un tema como un usuario provisional
def staged_reply
user = ensure_user
manager = NewPostManager.new(user,
raw: params[:body],
topic_id: params[:topic_id])
result = manager.perform
end
end