首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chartkick: Arel::来访者::Rails中的不可支持的Visitors

Chartkick: Arel::来访者::Rails中的不可支持的Visitors
EN

Stack Overflow用户
提问于 2019-08-28 17:28:09
回答 1查看 845关注 0票数 0

我正在使用夏特克宝石为Rails应用程序设计仪表板图。

我尝试使用多系列图表函数来显示支付数据的真图和假图,这是一个布尔值(真和假),使用下面的代码。

代码语言:javascript
复制
<%= line_chart Donation.group(:payment).group_by_day(:created_at).count, colors: ["#342F49", "#FB4D00" ] %>

当它显示支付的图表时,false的标签没有显示,它只是显示true的标签。我附上了这个问题的截图。

因此,我决定在基于chartkick文档的多系列图表函数中添加一个选项,以便使用下面的代码显示这两个标签的真假。

代码语言:javascript
复制
<%= line_chart Donation.group(payment: [{name: "Series A", data: true}, {name: "Series B", data: false} ]).group_by_day(:created_at).count, colors: ["#342F49", "#FB4D00" ] %>

但这一次我得到了错误

Arel::来访者::Dashboard#index中的不可支持的访问者错误 不支持的参数类型:哈希。构造一个Arel节点。

我曾试图对如何构造Arel节点进行一些研究,但尚未取得成功。拜托,我需要帮助。提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-29 12:42:33

我从Reddit rails社区的一个成员那里得到了一些帮助,然后我想出了如何让它工作。

错误是由传递给Donation.group的哈希值引起的。这是一个ActiveRecord方法,而不是Chartkick提供的东西,因此它不理解传递给它的名称/数据散列。

操作顺序需要倒置,以便将图表配置传递给line_chart函数,并将查询参数传递给ActiveRecord。还强烈建议避免视图层中的数据库查询,因为这使得它们几乎不可能进行测试。

所以我是怎么修好它的

首先,在应用程序的charts_helper.rb Helpers文件夹中创建一个文件。

app/helpers/charts_helper.rb

代码语言:javascript
复制
module ChartsHelper
  def donation_payments_chart_data
    [
      { name: 'true', data: Donation.group(:payment).group_by_day(:created_at).count, color: "#342F49" },
      { name: 'false', data: Donation.group(:payment).group_by_day(:created_at).count, color: "#FB4D00" }
    ]
  end
end

其次,在视图文件中,调用app/helpers/charts_helper.rb中定义的donation_payments_chart_data方法

app/views/dashboard/index.html.erb

代码语言:javascript
复制
<%= line_chart donation_payments_chart_data %>

就这样。

我希望这对有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57697386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档