累积 Chartkick 图表 & Acts_As_Taggable_On
Cumulative Chartkick Chart & Acts_As_Taggable_On
我目前在使用 Chartkick 和 acts_as_taggable_on.
获取要在 Rails 应用程序上使用的某些数据的总计 运行 时遇到问题
我希望我的用户搜索带有标签的项目,我的@items 是:
@items = current_user.items.tagged_with(params[:query])
我的 x 轴是我的项目的 created_at 日期,我的 y 轴只是一个 :result 来自我的模型,它是一个整数。我希望 x 轴上的每个项目都是 运行 总计,包括最后一个值(正数或负数)。
如果我设置:
@chart = current_user.items.all
并将其用于 chartkick:
= line_chart @chart.group_by_day(:created_at).order("day asc").sum(:result).map { |x,y| { x => (@sum += y)} }.reduce({}, :merge)
图表效果很好,但它显然没有过滤用我的搜索参数绘制的图表。
当我将通过搜索参数过滤的折线图的@chart 更改为@items 时,我收到错误消息:
ERROR: column reference "created_at" is ambiguous.
我已经尝试在我的模型中创建不同的范围来尝试帮助解决这种情况,但到目前为止它似乎没有帮助。
非常感谢任何帮助。
好的伙计们,我终于解决了这个问题!
关于 PG 冲突的大多数答案都涉及 .group() 而我正在查看 .group_by_day(:created_at)。我通过简单地使用修复了模棱两可的错误:
= line_chart @items.group_by_day('items.created_at').order("day asc").sum(:result).map { |x,y| { x => (@sum += y)} }.reduce({}, :merge)
唯一的区别是将 'items.created_at' 作为字符串传递给 group_by_day 以定义我指的是哪个 created_at。
我目前在使用 Chartkick 和 acts_as_taggable_on.
获取要在 Rails 应用程序上使用的某些数据的总计 运行 时遇到问题我希望我的用户搜索带有标签的项目,我的@items 是:
@items = current_user.items.tagged_with(params[:query])
我的 x 轴是我的项目的 created_at 日期,我的 y 轴只是一个 :result 来自我的模型,它是一个整数。我希望 x 轴上的每个项目都是 运行 总计,包括最后一个值(正数或负数)。
如果我设置:
@chart = current_user.items.all
并将其用于 chartkick:
= line_chart @chart.group_by_day(:created_at).order("day asc").sum(:result).map { |x,y| { x => (@sum += y)} }.reduce({}, :merge)
图表效果很好,但它显然没有过滤用我的搜索参数绘制的图表。
当我将通过搜索参数过滤的折线图的@chart 更改为@items 时,我收到错误消息:
ERROR: column reference "created_at" is ambiguous.
我已经尝试在我的模型中创建不同的范围来尝试帮助解决这种情况,但到目前为止它似乎没有帮助。
非常感谢任何帮助。
好的伙计们,我终于解决了这个问题!
关于 PG 冲突的大多数答案都涉及 .group() 而我正在查看 .group_by_day(:created_at)。我通过简单地使用修复了模棱两可的错误:
= line_chart @items.group_by_day('items.created_at').order("day asc").sum(:result).map { |x,y| { x => (@sum += y)} }.reduce({}, :merge)
唯一的区别是将 'items.created_at' 作为字符串传递给 group_by_day 以定义我指的是哪个 created_at。