回答編集履歴
1
updated_atだと保存時に保存日時になってしまうのでupdate_atに変更。
answer
CHANGED
@@ -1,27 +1,33 @@
|
|
1
1
|
通知する必要が無ければ、cronもwheneverも使う必要はないでしょう。
|
2
2
|
|
3
|
-
orderに
|
3
|
+
orderにupdate_at属性でも作っておいて、
|
4
4
|
```Ruby
|
5
5
|
# shop側でorderを閲覧するメソッドで事前判定
|
6
6
|
if order.status == 'review' && order.updated_at < 10.days.from_now
|
7
7
|
order.status = 'reject'
|
8
|
+
order.update_at = order.update_at + 10.days
|
8
9
|
order.save
|
9
10
|
end
|
10
11
|
|
11
12
|
# userが新しくorderするメソッドで事前判定
|
12
|
-
newest_order = user.orders.order(Order.arel_table[:
|
13
|
+
newest_order = user.orders.order(Order.arel_table[:update_at].desc).first
|
13
14
|
order_available = false
|
14
|
-
if (newest_order.status == "review" && newest_order.
|
15
|
+
if (newest_order.status == "review" && newest_order.update_at < 10.days.from_now)
|
15
16
|
newest_order.status = 'reject'
|
17
|
+
order.update_at = order.update_at + 10.days
|
16
18
|
newest_order.save
|
19
|
+
if (newest_order.update_at < 3.days.from_now)
|
17
|
-
|
20
|
+
oder_available = true
|
21
|
+
end
|
18
22
|
elsif (newest_order.status == "accept" || newest_order.status == "reject") &&
|
19
|
-
newest_order.
|
23
|
+
newest_order.update_at < 3.days.from_now
|
20
24
|
order_available = true
|
21
25
|
end
|
22
26
|
unless oder_available
|
23
27
|
flash[:error] = "まだ注文できません。"
|
24
28
|
end
|
29
|
+
|
30
|
+
## oder_update_atは自動で更新されないので、ステータス変更のたびに日付を更新する必要はある
|
25
31
|
```
|
26
32
|
こんな感じでいいのでは?
|
27
33
|
|