ここに怒っています。感謝の意を受けたどんな指針も!予期せず変化するレールモデル変数
私は配信モデルを持っており、配信ラインに基づいて配信状態を更新する方法を追加しようとしています。この機能は、モデルクラス内で定義され、そしてdelivery_state属性モデルの一つである:私は、ログに見ている何
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
2本のlogger.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:
私は上記のコードでマークされた行をコメントアウトした場合、OKを動作するように表示されます。
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
しかし、私は配達がSTIであることをリフレッシュした後に表示することができますこの後に期待しますか?
はあなたが試すことができ '最初の' if'内部self.delivery_state =「RECEIVED''にしますローカル変数を作成しておらず、代わりにセッターを呼び出していることを確認してください。 –