ユーザーのポイント合計に基づいて製品の割引を行っています。ただし、180 日以内にポイントを使用することをお勧めします。そのため、created_at < 180.days.ago のポイントのみがカウントされます。
180 日前から唯一の句読点を取得する簡単な方法は何でしょうか?
ユーザーのポイント合計に基づいて製品の割引を行っています。ただし、180 日以内にポイントを使用することをお勧めします。そのため、created_at < 180.days.ago のポイントのみがカウントされます。
180 日前から唯一の句読点を取得する簡単な方法は何でしょうか?
遅すぎるようですが、今は同様の状況に取り組んでおり、この例は彼ら自身のドキュメントにあります。
https://github.com/tute/merit#other-actions-1
あなたの場合、コードは次のようになります。
user.score_points.where("created_at > '#{180.days.ago}'").sum(:num_points)
どうやら、#points
単なる整数を返します (Point オブジェクトではありません)。したがって、指定された日付でポイントを選択したい場合は、#score_points
代わりに使用する必要があります。
これが役立つことを願っています。
私は Merit に詳しくないので、それが提供するモデルを確認する必要がありますが、おそらくユーザー モデルで次のようなことができます。
class User < ActiveModel::Base
def validPonts
self.points.select{ |p| p.created_at > 180.days.ago }
end
end
次に、@user.validPoints を呼び出して、過去 180 日間に存在するポイントのみを取得します。