“排序选择”投票在饼图中无法正常工作

:information_source: 概述

使用饼图类型和排序选择投票会产生不正确的结果。每个选项都会获得一票,而不管用户实际如何对他们的选择进行排序。这种行为使图表具有误导性,并且与排序选择逻辑不兼容。

:walking_woman: 重现步骤

  1. 在编辑器中单击创建投票
  2. 打开高级选项(齿轮图标)。
  3. 填写投票字段(可选),但选择饼图而不是“条形图”作为图表类型。
  4. 滚动回顶部,然后选择排序选择作为投票类型。
  5. 保存并发布投票。

此时,投票将使用饼图类型,该类型并非设计用于排序选择投票。

:white_check_mark: 预期结果

系统应执行以下任一操作:

  • 选择“排序选择”时自动切换到条形图,或
  • 完全阻止用户为排序选择投票选择饼图

:x: 观察到的结果

投票使用饼图并计算每个选项一票,即使某个用户只排序了一项或几项选择。图表平等地显示所有选项,使结果毫无意义:

:books: 其他上下文

已应用临时解决方法:

poll = Poll.find_by(id: 123)
poll.chart_type = 'bar'
poll.save

在控制台中手动将投票的图表类型从 pie 更新为 bar 可以纠正问题并恢复准确的结果:

3 个赞

FYI 值得关注的边界情况 @merefield

1 个赞

这不是一个有效的边缘情况。

Ranked Choice 目前在核心中没有支持的图表。

它永远不应该用饼图来可视化。Ranked Choice 由多个轮次组成,这无法在饼图中表示。

这里的错误,如果有的话,很可能是有人设法选择了一个图表,而界面本应阻止他们。是否有人更改了设置代码以允许这样做?

我以前提供过一个合适的图表,一个 Sankey 图,它当时是有效的,但 Discourse 拒绝合并它,因为它添加了一个(尽管是支持良好且受欢迎的)依赖库。

如果 CDCK 改变其关于合并 Sankey 图的立场,我很乐意有人资助我将其更新到现代代码并准备一个 PR。

我的插件分支显示了 Ranked Choice 的 Sankey 图。它可能已经过时,并且由于没有人资助其维护,因此需要进行维护:

你可以随意处理它。

如果我自己不说,它真的很酷。

它绝对比饼图好!!

1 个赞