如何在投票在线时更改它(而不丢失数据)

我发现当用户开始创建投票时,他们会犯各种错误,而这些错误往往在投票进行到一半时才被发现。

不幸的是,对投票进行任何编辑都会导致投票数据被清除。这对于投票的完整性来说是可以理解的,但有时对于用户来说,一个简单的调整就能解决一个大问题,却会带来非常不好的后果。

然而,这可以通过 rails 控制台来完成。修改一个正在进行的投票可以改变投票的行为,同时保留数据,但 markdown 不会被触及。我不确定重新烘焙帖子时会发生什么,但怀疑投票会恢复到其原始行为。到那时,它可能已经过时且被遗忘了,所以这也不是什么大问题。

关键是找到帖子 ID;一个简单的方法是通过这个 SQL 查询来找到它(感兴趣的投票应该在顶部附近):

SELECT post_id as postid, *
FROM polls
ORDER BY id desc

这是一个投票修改的例子,用于当用户不小心将投票设置为单选而不是多选时:

Poll.find_by_post_id(75571).update(type:1,min:1,max:4)

你应该能够从查询和那个起点拼凑出其他的修改方法。

4 个赞

我已将此内容移至 Installation,而不是将其作为推荐指南,因为它属于“绕过 Rails 中的 UI”范围(类似于之前邮件中的内容)。

我认为我们可以为这类技巧提供某种折衷方案,因为它们很有用,但又带有一些“风险自负”的意味。我将稍后回来查看当前的意见。:+1:

1 个赞

也许再加一个标签会很有帮助,比如 #unofficial-tip#dig-your-own-grave。然后类别可以更…贴合主题,但会有一个指示,表明存在知识需求和可能惨败的风险。

3 个赞

这是一个很好的建议。

我通常会运行一个主题来创建一个投票草稿大纲,并邀请高级成员提出改进意见或遗漏的选项。

然后我运行投票。

4 个赞

是的,我也是这么做的,尤其是对于非常重要的民意调查。

但我也想鼓励我的用户独立完成,这意味着在他们学习和不可避免地犯错时支持他们。

1 个赞

为什么我们不能直接在用户界面中修复它?民意调查的完整性,等等等等。通常只是一个拼写错误,而让它留在那里让我很痛苦,但总比删除投票要好……我不应该被迫做出这种选择。

而且,如果管理员想稍后更改,为什么不行?有时民意调查只是为了好玩,而保持“完整性”绝对不是首要任务。整个事情即使允许稍后编辑也会崩溃的事实使得该设置毫无用处。我们应该能够设置允许编辑而不丢失选票……如果我们想这样运行我们的网站的话。

4 个赞