以编程方式添加喜欢?

在导入到 discourse 时,一个主要帖子在转换过程中丢失了 100 个点赞(我没有正确抓取它)。在这种情况下,我不想重新运行导入脚本。

如果我有喜欢该帖子的用户列表,添加这些用户的最佳方法是什么?有 rake 命令吗?

我会查看导入点赞的脚本,看看它是如何添加点赞的,然后在 rails 控制台中执行相同的操作。我非常确定这是一种 PostAction

我非常确定没有这样的 rake 命令,因为这是一个相当不寻常的请求(大多数情况下,我只会重新运行导入脚本),但我还没有查看过。

3 个赞

感谢您的回复。我有点担心重新运行导入脚本,因为它已经将近 6 个月了,而且我不确定在旧数据与新数据交互的极端情况下可能会产生什么副作用。

这是我在导入脚本中使用的辅助函数。

这是相关的代码

created_by = User.find_by(id: user_id_from_imported_user_id(params[:user_id]))
post = Post.find_by(id: post_id_from_imported_post_id(params[:post_id]))

if created_by && post
          PostActionCreator.create(created_by, post, :like, created_at: params[:created_at])
          created += 1
...

我会运行类似这样的东西。谢谢!

3 个赞

我也会很紧张!

太棒了!你永远不知道提供像“嗯,我会这样做……”这样含糊的答案是否会有用。

如果你要将内容粘贴到 rails 控制台,一个有用的技巧是,如果你在行的末尾加上 ;,你将不会被推入 less 分页器来查看最后一个语句的结果。(如果你编写了一个合适的循环或运行了一个脚本,你就不需要这个提示。)

祝你好运!

2 个赞

如果有人想这样做,以下是我成功的方法。打开 rails 控制台并运行:

p = Post.find(31871)
u = User.find_by(username:"xxx")
PostActionCreator.create(u, p, :like, created_at: Time.now)

显然,您需要替换帖子 ID 和用户名。

2 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.