تحويل المواضيع دفعة واحدة إلى رسائل خاصة

أخطط لتحويل مجموعة من المواضيع إلى رسائل جماعية لتخفيض بعض الفئات غير المستخدمة تقريبًا. لا يمكننا القيام بذلك عبر واجهة المستخدم (واحدة تلو الأخرى فقط)، ولا يمكنني العثور على طريقة جماعية للقيام بذلك.

على حد علمي، يجب أن يعمل هذا عبر وحدة التحكم:

  1. تحديد المواضيع حسب فئتها
  2. تغيير archetype الموضوع إلى private_message
  3. تغيير subtype الموضوع إلى ‘user_to_user’
  4. جعل category الموضوع Null
  5. في topic_groups (أو ربما topic_allowed_groups)، إضافة سطر بمعرف المجموعة (group_id) ومعرف الموضوع (topic_id) ذي الصلة

هل هذا النهج منطقي؟ أحتاج إلى العمل على الفرق بين جداول الموضوع/المجموعات هذه أولاً بالطبع. والقيام بذلك في بيئة اختبار للبدء!!

إعجاب واحد (1)

قد ينجح ذلك. أيضًا، إذا لم تكن تعرف، يمكنك فعل شيء مثل

 topics = Topic.where(category: 10)

  topics.update_all(archetype: xxx, topic_category: nil)

أو شيء من هذا القبيل. إذا كنت تعرف عن update_all، فهذا ليس خبرًا.

إعجابَين (2)

شكراً جاي! سيكون ذلك لطيفاً وسريعاً للنصف الأول. ومع ذلك، يجب علي أيضاً التأكد من أنهم سينتهون كمجموعة مديري مشاريع (Group PMs).

هل لديك أي فكرة عما يجب علي فعله مع جدولي topic_groups / topic_allowed_groups؟ لا أعتقد أنه يمكنني التخلص من الأمر باستخدام update_all لهما.

إعجاب واحد (1)