ここで怒っています。どんなポインタもありがたいことに受け取りました!
配送モデルがあり、配送ラインに基づいて配送状態を更新するメソッドを追加しようとしています。この関数はモデルクラス内で定義され、delivery_stateはモデル属性の1つです。
def updateDeliveryState
expectedLines = DeliveryLine.where( :delivery_id => id,
:line_state => 'EXPECTED' )
logger.debug "State1: #{delivery_state}"
if expectedLines.length == 0
if delivery_state == 'EXPECTED' || delivery_state == 'RECEIVING'
delivery_state = 'RECEIVED' # commenting this line fixes it
save
end
else
logger.debug "State2: #{delivery_state}"
if delivery_state == 'EXPECTED'
logger.debug "Updating to receiving"
delivery_state = 'RECEIVING'
save
end
end
end
ログに表示されているのは、2logger.debug
行の間でdelivery_stateがクリアされていることです。
State1: EXPECTED
DeliveryLine Load (4.5ms) SELECT "delivery_lines".* FROM "delivery_lines"
WHERE "delivery_lines"."line_state" = 'EXPECTED'
AND "delivery_lines"."delivery_id" = 227
State2:
上記のコードでマークされた行をコメントアウトすると、正常に機能しているように見えます。
State1: EXPECTED
DeliveryLine Load (9.6ms) SELECT "delivery_lines".* FROM "delivery_lines"
WHERE "delivery_lines"."line_state" = 'EXPECTED'
AND "delivery_lines"."delivery_id" = 227
State2: EXPECTED
Updating to receiving
しかし、リフレッシュした後、この後も配達が期待されていることがわかりますか?