Topics.where(category_id: 123).each do |t|
posts.where(topic_id: t).each do |p|
p.raw.gsub!("replaceme","/")
p.save
end
end
./launcher enter app
rails c
# 粘贴内容
你或许应该先备份一下。
Topics.where(category_id: 123).each do |t|
posts.where(topic_id: t).each do |p|
p.raw.gsub!("replaceme","/")
p.save
end
end
./launcher enter app
rails c
# 粘贴内容
你或许应该先备份一下。
谢谢 Jay,感谢你的时间!
我也吃过亏,知道在做任何重要的事情之前都要先备份 ![]()
更新:它运行得非常好,但我不得不使用 \\n 而不是 /。
另外,上面的代码是 Topic 和 Post ![]()
运行此代码后进行一次重烘焙也是个好主意。在我的例子中,是为了重新生成缩略图。
帖子已合并到现有主题:使用正则表达式替换多个主题中的内容?
嘿 @nathank!想知道你是否找到了这个问题的上游解决方案。我们正在处理一个类似的问题,我们希望在用户每次在主题或帖子中包含“X”时,(基本上)自动将“X”替换为“Y”。
这就是“监视词”功能的作用。它会在创建或编辑帖子时替换字符串。
/admin/customize/watched_words
谢谢 Jay!看起来这对于基于字符的序列来说是可行的,但对于非字符格式(如制表符缩进)则不行。
用例:我们平台上有几位老作家仍然像对待打字机一样对待键盘,按 5 次空格键进行缩进。其他作家则复制粘贴带有制表符缩进的内容。这两种情况都会导致 Discourse 将其解释为标记。(如果我用词正确的话。)
在主题组件方面找到了一个变通方法,我们使用 CSS 来覆盖标记格式,而这对于我们的特定用例来说是不需要的。
感谢您的帮助!