2015-03-04 3 views
2

У меня в настоящее время проблема с общей суммой для некоторых данных, которые будут использоваться в приложении Rails с Chartkick и act_as_taggable_on.Накопительный Chartkick Chart & Acts_As_Taggable_On

Я хочу, чтобы мои пользователь для поиска элементов с тегами, где мой @items является:

@items = current_user.items.tagged_with(params[:query]) 

Моей оси й дата created_at для моих вещей и моей у оси просто: в результате моего модель, которая является целым числом. Я хочу, чтобы каждый элемент по оси х был текущим итогом, включая последнее значение (положительное или отрицательное число).

Если я установить:

@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) 

Диаграмма прекрасно работает, но это, очевидно, не фильтруя, что быть наметили с моим поисковым Params.

Как только я изменить @chart к @items для моей линии диаграммы, который фильтрует через поисковый Params я получаю ошибку:

ERROR: column reference "created_at" is ambiguous. 

Я пытался создавать различную область применения в моей модели, чтобы попытаться помочь ситуация, но, похоже, пока это не помогает.

Я бы очень признателен за любую помощь.

ответ

2

Хорошо, ребята, я, наконец, сработал!

Большинство ответов вокруг конфликтов 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 я имел в виду.

Смежные вопросы