您可以使用一个简单的插件来完成此操作。
您需要做什么
该插件需要执行以下操作:
-
添加一个名为
known_tags的用户自定义字段,它是一个字符串列表。 -
在用户个人资料中添加一个界面,供用户编辑
known_tags。我认为没有必要为此添加一个全新的个人资料选项卡,但您可以这样做。如果您不希望用户自己编辑,只需将其设置为仅管理员可编辑,然后进入用户个人资料并根据您的 CSV 文件进行更新。 -
添加一个事件挂钩,该挂钩使用
PostCreator中的before_create_post或post_created事件,根据主题中的标签将所需内容添加到帖子中。
如何操作
第 1 部分和第 2 部分与下面链接主题中的其他模型示例插件非常相似。尝试通过类比来弄清楚。如果您真的卡住了,可以向我寻求提示。
第 3 部分也将放在您的 plugin.rb 文件中。它看起来会像这样
on(:post_created) |post, opts, user|
if post.is_first_post? && post.topic.tags.present?
user_ids = UserCustomField.where(name: 'known_tags', value: post.topic.tags).pluck(:user_id)
usernames = User.where(id: user_ids).pluck(:username)
new_raw = post.raw + "something something #{usernames}"
PostRevisor.new(post).revise!(
user,
{
raw: new_raw,
edit_reason: "some reason"
},
skip_validations: true,
bypass_bump: true
)
end
end
自己尝试一下。如果您真的卡住了,我会提供帮助。如果能有有力证据表明您正在自己尝试解决问题,我将更倾向于提供帮助 ![]()