Ruby on rails Rails:每周活动日志-填写空白周
我正在创建一个活动图表,显示一段时间内保存到用户配置文件中的记录数(在本例中为“user.notes”,即用户有许多注释)。下面函数的json输出很好地输入到图表库中 但是,下面的函数在没有任何活动的情况下不会输出数周的数据…我需要这些“孔”,其中包含正确的周日期。。。有人能建议我怎么做吗 我相信“has_activity”gem有这个功能,但是我更愿意避免使用整个gem来实现这个功能Ruby on rails Rails:每周活动日志-填写空白周,ruby-on-rails,android-activity,week-number,amcharts,Ruby On Rails,Android Activity,Week Number,Amcharts,我正在创建一个活动图表,显示一段时间内保存到用户配置文件中的记录数(在本例中为“user.notes”,即用户有许多注释)。下面函数的json输出很好地输入到图表库中 但是,下面的函数在没有任何活动的情况下不会输出数周的数据…我需要这些“孔”,其中包含正确的周日期。。。有人能建议我怎么做吗 我相信“has_activity”gem有这个功能,但是我更愿意避免使用整个gem来实现这个功能 class Case < ActiveRecord::Base def self.user_acti
class Case < ActiveRecord::Base
def self.user_activity_profile(user)
array = []
user.notes.group_by{ |u| u.created_at.beginning_of_week }.each do |week, entries|
array << { week: week.strftime("%d %b"), count: entries.count }
end
array.to_json
end
end
class Case 数组我相信这应该满足您的需要。它只需为每个用户记录第一个和最后一个备忘,然后一次按7天的间隔逐步完成日期范围,这迫使它不能跳过任何一周
class Case < ActiveRecord::Base
def self.user_activity_profile(user)
array = []
notes = user.notes
first = notes.first.created_at.beginning_of_week
last = notes.last.created_at.beginning_of_week
(first..last).step(7){ |date|
array << [
week:date.strftime("%d %b"),
count: notes.where("created_at BETWEEN ? AND ?", date, date + 1.week).count
]}
array.to_json
end
end
class Casedef self.user\u activity\u profile(用户)
from=Time.now-1.5个月
现在
tmp=来自
数组=[]
开始
tmp+=1.5周
排列
def self.user_activity_profile(user)
from = Time.now - 1.months
to = Time.now
tmp = from
array = []
begin
tmp += 1.week
array << [
week: tmp.strftime("%d %b"),
count: user.notes.where("created_at BETWEEN ? AND ?", tmp, tmp + 1.week).count
]
end while tmp <= to
array.to_json
end