Impressionist gem を使用して、記事のビューをキャプチャしています。ユーザーは記事を作成し、ダッシュボードでこれらを表示できます。私が探しているのは、Chartkick を使用して、日ごとに作成された記事の量、日ごとのコメント、そしてこの質問で最も重要なこととして、ユーザーの記事 (および彼のみ) の 1 日あたりのインプレッションを示すグラフを表示することです。ユーザーが記事ごとに 2 つのインプレッションを持ち、2 つの記事を持っている場合、その日のチャートでは 4 と表示されます。
私のショーアクションには次のものがあります:
@articles = current_user.articles
@comments = @articles.comments
そして私の見解では:
<%= area_chart [
{name: "Articles", data: @articles.group_by_week(:created_at, format: "%B %d, %Y").count },
{name: "Comments", data: @comments.group_by_week(:created_at, format: "%B %d, %Y").count },
{name: "Impressions", data: @impressions.group_by_week(:created_at, format: "%B %d, %Y").count }
]%>
インプレッションの ID を収集して、これを行う方法をたくさん試しましたが、毎回「ブロックがありません」というメッセージが表示されます (笑わないようにしてください)。
@article_impressions = []
@articles.each do |article|
@impression = Impression.where(impressionable_id: article.id)
if @impression.present?
@article_impressions << [@impression.ids]
end
end
また、@impression をハッシュに取り込もうとしましたが、同じように「ブロックが指定されていません」。私はこれを間違った方法で行っているとほぼ 100% 確信しています。誰かが助けることができれば、それは大歓迎です!
ありがとう。