График новых пользователей по дате в приложении Rails с помощью Seer - PullRequest
3 голосов
/ 14 марта 2010

Я хотел бы реализовать скользящий график, показывающий новых пользователей по дням за последние 7 дней с помощью Seer.

У меня установлен провидец:

http://www.idolhands.com/ruby-on-rails/gems-plugins-and-engines/graphing-for-ruby-on-rails-with-seer

Я изо всех сил пытаюсь понять, как реализовать.

У меня есть массив пользователей, которых я хочу построить:

@ users = User.all (: условие => {: made_at => 7.days.ago..Time.zone.now})

Не удается найти правильный способ реализации: data_method, чтобы свернуть их по дате созданной даты.

Кто-нибудь делал это или подобное с Провидцем?

Кто-нибудь умнее меня смог объяснить это, посмотрев образец страницы Провидца (ссылка выше)?

1 Ответ

6 голосов
/ 14 марта 2010

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

Код контроллера

# declare a struct to hold the results
UserCountByDate = Struct.new(:date, :count) 

def report
  @user_counts = User.count( :group => "DATE(created_at)", 
                   :conditions => ["created_at >= ? ", 7.days.ago], 
                   :order => "DATE(created_at) ASC"
                 ).collect do |date, count| 
                   UserCountByDate.new(date, count)
                 end

end

Просмотреть код

<div id="chart"></div>

<%= Seer::visualize(
      @user_counts, 
      :as => :column_chart,
      :in_element =>'chart', 
      :series => {
        :series_label => 'date',
        :data_method => 'count'
      },
      :chart_options => {
        :height => 300,
        :width => 100 * @user_counts.size,
        :is_3_d => true,
        :legend => 'none',
        :colors => "[{color:'#990000', darker:'#660000'}]",
        :title => "New users in last 7 days",
        :title_x => 'date',
        :title_y => 'count'
      }
    )
 -%>

data_method должен присутствовать в каждой строке массива, используемой в качестве входных данных для диаграммы.Метод ActiveRecord count возвращает хэш, который преобразуется в массив struct, который отвечает методам date и count.

...