トピックを一括でプライベートメッセージに変換

UIからは一度に1つしか実行できないため、ほとんど使用されていないカテゴリをいくつか廃止するために、多くのトピックをグループPMに変換することを計画しています。一括で実行する方法も見つかりません。

コンソール経由でこれが機能するはずです。

  1. カテゴリでトピックを特定します。
  2. topic.archetypeprivate_message に変更します。
  3. topic.subtype を ‘user_to_user’ に変更します。
  4. topic.categoryNull にします。
  5. topic_groups (または topic_allowed_groups) に、関連する group_idtopic_id を持つ行を追加します。

このアプローチは理にかなっていますか?もちろん、これらのトピック/グループテーブルの違いを最初に突き止める必要があります。そして、まずはサンドボックスで実行します!!

「いいね!」 1

それはうまくいくかもしれません。また、もしご存知なければ、以下のようなこともできます。

 topics = Topic.where(category: 10)

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

あるいは、そのようなものです。もし update_all についてご存知であれば、これは新しい情報ではありません。

「いいね!」 2

ジェイ、ありがとうございます!前半はそれで十分速いです。しかし、最終的にグループPMになることも保証しなければなりません。

topic_groups / topic_allowed_groupsテーブルについて、何かアイデアはありますか? update_allで済ませることはできないと思います。

「いいね!」 1