0

我根据用户的总积分给产品打折。但我想鼓励用户在 180 天内使用这些积分。因此,只有 created_at < 180.days.ago 的点数会计算在内。

从 180 天前获取唯一标点符号的简单方法是什么?

4

2 回答 2

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改用。

我希望这有帮助。

于 2014-11-16T14:58:32.697 回答
0

我对 Merit 不熟悉,因此您必须查看它为您提供的模型,但您可能可以在您的用户模型中执行以下操作:

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

然后您调用@user.validPoints 以仅检索过去 180 天内存在的点。

于 2014-06-14T17:28:10.923 回答