我根据用户的总分给予产品折扣。但我想鼓励用户在180天内使用这些积分。所以,只有点created_at< 180.days.ago会算数。
从180天前获得唯一标点符号的简单方法是什么?
答案 0 :(得分: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
代替。
我希望这会有所帮助。
答案 1 :(得分:0)
我不熟悉Merit,所以你必须看看它给你的模型,但你可以在你的用户模型中做这样的事情:
class User < ActiveModel::Base
def validPonts
self.points.select{ |p| p.created_at > 180.days.ago }
end
end
然后调用@ user.validPoints来仅检索过去180天内存在的点。