在这里发疯。任何指点都感激不尽!
我有一个交付模型,我正在尝试添加一种方法来根据交付线更新交付状态。该函数在模型类中定义,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
我在日志中看到的是在两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:
如果我注释掉上面代码中标记的行,它似乎可以正常工作:
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
但是,刷新后我可以看到在此之后仍然预计交货?