批量将主题转换为私信

我计划将一系列主题转换为群组 PM,以弃用一些很少使用的类别。我们无法通过用户界面执行此操作(一次只能一个),也找不到批量执行的方法。

据我所知,这应该可以通过控制台完成:

  1. 按类别识别主题
  2. 将 topic.archetype 更改为 private_message
  3. 将 topic.subtype 更改为 ‘user_to_user’
  4. 将 topic.category 设为 Null
  5. 在 topic_groups(或可能是 topic_allowed_groups)中,添加一行包含相关 group_id 和 topic_id

这种方法有意义吗?当然,我需要先弄清楚这些 topic/groups 表之间的区别。并且首先在沙盒中进行!!

1 个赞

这或许可行。另外,如果你不知道,你可以这样做:

 topics = Topic.where(category: 10)

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

或者类似的做法。如果你知道 update_all,这不算什么新闻。

2 个赞

谢谢 Jay!这在前一半会很方便快捷。但是,我也必须确保他们最终成为 Group PM。

关于 topic_groups / topic_allowed_groups 表,你有什么想法吗?我不认为我可以用 update_all 来处理它们。

1 个赞