Merit Gem:即将到期的点数

时间:2014-06-14 16:48:59

标签: ruby-on-rails ruby merit-gem

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

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

2 个答案:

答案 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天内存在的点。