لقد قضيت بعض الوقت الجيد في البحث في الكود. أعتقد أن شيئًا كهذا (تحذير: من المحتمل جدًا ألا يعمل لأنني لم أجربه بعد) سيعمل للسماح للمستخدم بنشر رد باستخدام البريد الإلكتروني فقط. سأكون ممتنًا لأي تعليقات لديك.
أنا لست متأكدًا بشكل خاص مما إذا كانت هذه هي أفضل طريقة لإنشاء مستخدم مرحلي. لم أجد أي طريقة تنشئ مستخدمين مرحليين على وجه التحديد على الرغم من ذلك.
class SomePluginController < ApplicationController
# تأكد من وجود مستخدم مرحلي في قاعدة البيانات
def ensure_user
# تحقق مما إذا كان المستخدم المرحلي موجودًا
user = User.where(staged: true).with_email(params[:email].strip.downcase).first
# إنشاء مستخدم مرحلي يدويًا
if !user
user = User.new
user.staged = true
user.email = params[:email]
user.active = false
user.save!
end
user
end
# مشاهدة الموضوع كمستخدم مرحلي
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
# الرد على الموضوع كمستخدم مرحلي
def staged_reply
user = ensure_user
manager = NewPostManager.new(user,
raw: params[:body],
topic_id: params[:topic_id])
result = manager.perform
end
end