如何使用Rails关联制作ChartKick折线图?

问题描述

我正在努力格式化红宝石代码获取所需的图表类型。我正在制作一个Rails 6应用程序,其中表之间有几层关联。
我有

我要构建的图表只是X轴= Headline.created_at,Y轴headline.article.sentiment.score

控制器

bar=par_dir_name
sed "s/^>NODE/>${bar}_NODE/" infile >> "${bar}".fasta

查看代码

@headlines = Headline.where("created_at = ?",Date.today)

如何使Y轴成为“得分”而不是“计数”?

谢谢。

解决方法

这取决于您如何设置模型之间的关系。如果您在HeadlineSentiment中有这样的关系

class Headline
  has_one :article
  has_one :sentiment,through: :article
end

您可以简单地执行以下操作

@headlines.each_with_object({}) do |headline,result|
  result[headline.id] = headline.sentiment&.score
end
# { 1: 2,3: 4}

您应在初始查询中包含articlesentiment,否则您将拥有一个n+1 query

Headline.includes(:article,:sentiment).where("created_at = ?",Date.today)

在SQL中可能有更高效的方法来对内联进行分组,但这应该可以。