2011-11-12 1 views
2

구현을 위해 spree 0.70을 사용합니다. 개발 상태에서는 모든 것이 잘 작동합니다. 하지만 서버 주문 # 애플 리케이션을 배포 할 때 나던 일하지 않습니다. 로그에서만 스택 수준이 너무 깊어서 아무것도 발견되지 않았습니다. 아마도 모델 간의 관계에 문제가있을 것입니다.spree order.save 스택 레벨이 너무 깊음

Started POST "/orders/populate" for 89.173.150.167 at 2011-11-11 23:23:20 +0100 
Processing by OrdersController#populate as HTML 
Parameters: 
{"utf8"=>"✓","authenticity_token"=>"B8zHc4a4NwW9TU9lqUrHvu/5O2i+6aKfiD0bEFJEUEM=", "products"=>{"1060500784"=>"1025786949"}, "quantity"=>"1", "button"=>""} 
Completed 500 Internal Server Error in 148ms 

SystemStackError (stack level too deep): 

은 그럼 콘솔을 실행하고 난 다음 작업 생산에 false로 cache_classes을 변경하는 경우

o=order.new 
o.save! 

complete SQL log

실행 해보십시오. 내 버전 gems 보석은 생산 및 개발 상태에서 동일합니다.

+0

해시 된 비밀번호를 pastie에 버렸습니다. 중요한 것은 아니기를 바랍니다. (그래, 그것은 짐승이지만, 여전히 강압하는 것은 고통 스러울 것이다.) 덧붙여서, 나는 결국 ROLLBACK에 주목했다. 왜 그 시점에 저 지르지 않았습니까? – sarnold

+0

게스트 사용자의 암호입니다. 루비 오류 (스택 레벨이 너무 깊음 - 재귀 코드가 실행 됨)를 수행했기 때문에 롤백을 수행합니까, 아니면 제가 잘못 생각합니까? [sucessfull order.save의 쿼리입니다] (http://pastie.org/2851388) – LuiGi

+0

그 문제는 [여기]입니다 (https://github.com/spree/spree/blob/master/core/app). /models/spree/order.rb#L475) 는 order.update_adjustments 'DEF self.adjustments.reload.each을 update_adjustments after_update 전화 통화 adjustment.order.update! (새로운 조정을 생성 order.after_create : 업데이트!) 끝 ' – LuiGi

답변