サブスクのある契約プランに応じて1ヶ月の契約期間内でリソースの数を数えるロジックを組んでおります。
具体的に,user
はmessage
をhas_many
して、この瞬間(RSpecでcreate_list)メッセージ数が20個であるとし、
user.messages.size
が20
の状況を想定します。
そこで契約の開始期間のはじめと終わりがあるので、契約始めがuser.latest_contract.current_period_start
とするとThu, 30 Dec 2021
、契約終わりが、1ヶ月後のuser.latest_contract.current_period_end
とするとSat, 29 Jan 2022
と確認しています。
create_list
でテストを回して20個分作り1個目は
user.messages.first.created_at
がThu, 30 Dec 2021 08:18:20 JST +09:00
となっています。
その同日時のオブジェクトが20個同じものを生成する感じです。
またこのときに、上の期間内に含まれていると思います。
そこで上の契約期間内に作られたmessage
の個数を数えようとすると
user.messages.where(created_at: user.latest_contract.current_period_start...user.latest_contract.current_period_end).size
でデバッグしてみるとなぜか0
になってしまいます。
なんででしょうか、ご教授お願いいたします。
ちなみに先の通りuser.latest_contract.current_period_start...user.latest_contract.current_period_end
とするとThu, 30 Dec 2021...Sat, 29 Jan 2022
となりました。
回答2件
あなたの回答
tips
プレビュー