2014-01-13 2 views
0

공로 보석을 사용하여 하루 동안 (예 : '오늘'또는 '어제') 사용자 점수를 얻으려면 어떻게해야합니까?장점 보석 : 하루 동안 사용자의 점수를 얻는 방법?

current_user.points.where("created_at >= ?", Time.zone.now.beginning_of_day) 

을하지만 작동하지 않습니다

나는 시도했다.

+0

나는 보석의 근원을보아야한다고 생각한다. 예를 들어 [이것은'points' (https://github.com/tute/merit/blob/master/lib/merit/models/active_record/merit/score.rb#L47) 메소드이며 number를 반환합니다! 그러나 그 수는'score_points'에 대한 질의의 결과임을 알 수 있습니다. 스코어를 스코어를 score_points에 추가하면 하루에 포인트를 가져올 수 있다고 생각합니다. 어쩌면 당신은 전체 메소드'points'를 오버라이드 할 수 있습니다. – gotva

답변

1

장점에 대한 모델 다이어그램은 https://github.com/tute/merit/wiki/General-merit-workflow입니다. 그걸 염두에두고,이 같은 라인이 작동하게 :

u.sash.scores.first.score_points.where("created_at > ?", Time.zone.now.beginning_of_day).sum(:num_points) 

감사 TuteC :

user = User.first 
points = user.sash.scores.first.score_points 
points.where("created_at > '#{Time.zone.now.beginning_of_day}'") 
+0

다음과 같이 전체 행을 처리했습니다. u.sash.scores.first.score_points.where ("created_at>?", Time.zone.now.beginning_of_day) .sum (: num_points) –

0

이 최종 답변입니다.

관련 문제