您好,
我尝试在 rails c 中运行命令,例如 User.find(1).update(ip_address: nil, topics_viewed: nil) 来更新下面列表中的内容——但是,我一直收到错误:
我该如何更改这些值?
谢谢。
您好,
我尝试在 rails c 中运行命令,例如 User.find(1).update(ip_address: nil, topics_viewed: nil) 来更新下面列表中的内容——但是,我一直收到错误:
我该如何更改这些值?
谢谢。
您收到什么错误?
其中一些内容存在于其他表/模型中。例如,电子邮件地址存在于自己的表中,因此您需要在此处更新它们。
您正在解决什么问题?
只想重置统计信息,想删除 topics_viewed、posts_read、read_time 和 last_emailed。不关心用户详细信息,因为它们可以通过界面更改,只关心影响用户个人资料但无法编辑的值。
它们无法被编辑,因为它们不属于用户模型。
有一个模型会跟踪用户查看过哪些主题 (TopicViewItem),因此你需要清除它们(也许是 TopicViewItem.destroy_all – 不 – 那样不行。)然后运行相应的更新。如果它们被发送过邮件,那么它们最后一次被发送邮件的时间就是它们最后一次被发送邮件的时间。
有一个 PostTiming 模型会跟踪已读帖子和阅读时间。啊,你可以在源代码中搜索 PostTiming,找到类似这样的内容:
PostTiming.destroy_for(current_user.id, [topic_id])
所以这是一个开始。也许是这样:
PostTiming.destroy_for(1, PostTiming.where(user_id: 1).pluck(:topic_id).uniq))
有一些 ensureconsistency 任务可能就是更新这些的方法,但我不太确定。
在这种情况下,是否可以通过控制台合并管理员帐户?我知道这在管理员界面中是不可能的。
只需移除他们的管理员权限即可?
但看起来你可以使用 rake 任务来完成:Merging user accounts
谢谢 - 不确定是否可以取消原始管理员的管理权限。
如果它是开发者(在 app.yml 中设置),那么我认为你是对的。
另外,我刚注意到这个 rake 任务!
rake destroy:stats
看起来这可能就是你想要的。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.