这适用于rails控制台(rails c),但从浏览器看不到,它只显示结果,没有错误。
在控制器上我有:
def weekly_user_stats
@created_users = User.where("username IS NOT NULL")
@created_users_by_week = Hash.new{ |h,k| h[k] = [] }
@created_users.each do |u|
unless u.nil?
@created_users_by_week[u.created_at.beginning_of_week.strftime("%Y-%m-%d")].push("#{u.username}")
end
end
end
关于我的观点:
%ul
= @created_users_by_week.keys.sort.each do |k|
%li
= puts "#{k} : #{@created_users_by_week[k]}"
在页面上的结果我只看到了键,但没有看到键内的值,这些键应该是一个用户数组。 在控制台上工作得很好.. 我做错了什么?
答案 0 :(得分:0)
视图看起来不应该更像这样吗?
%ul
- @created_users_by_week.keys.sort.each do |k|
%li #{k} : #{@created_users_by_week[k]}
请参阅:http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html
答案 1 :(得分:0)
我不熟悉haml所以我不知道你的具体问题。但是我建议你在数据库中存储一个不同的日期,以便按周(或者如果你想要的话)快速检索你创建的用户。
你可以通过将数组存储为包含这些内容的属性来实现:
dates = ['20120307', '201203', '2012', '201210']
使用
dates[0] # (yyyymmdd)
dates[1] # (yyyymm)
dates[2] # (yyyy)
dates[3] # (yyyyww) ww = week number
然后,您可以通过查询包含“201210”的日期属性来检索用户。