2014-06-14 19 views
0

我打折的產品基於用戶的積分總數。但我想鼓勵用戶在180天內使用這些積分。所以,只有分數created_at < 180.days.ago會計數。優異的寶石:到期點

從180天前得到唯一標點符號的簡單方法是什麼?

+0

獎勵積分的行爲是否會生成一個記錄添加了多少點以及何時記錄在數據庫中的實例? – sicks

+0

我使用這個寶石:https://github.com/tute/merit。我認爲它確實如此。 – alexandrecosta

回答

1

它似乎太晚了,但現在我正在處理類似的情況,我在他們自己的文檔中找到了這個例子。

https://github.com/tute/merit#other-actions-1

在你的情況的代碼會是這樣的。

user.score_points.where("created_at > '#{180.days.ago}'").sum(:num_points) 

顯然,#points只返回整數(不是Point對象)。因此,如果您想選擇具有指定日期的積分,則需要使用#score_points

我希望這會有所幫助。

0

我不熟悉的可取之處,所以你必須要看看哪些車型它給你,但你也許可以做這樣的事情在你的用戶模型:

class User < ActiveModel::Base 
    def validPonts 
    self.points.select{ |p| p.created_at > 180.days.ago } 
    end 
end 

然後調用@ user.validPoints只檢索最近180天內存在的點。