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 に答える