веселье order.save уровень стека слишком глубоко

Я использую spree 0.70 для реализации своего интернет-магазина. В состоянии разработки все работает нормально. Но когда я развертываю приложение на сервере, order#populate не работает. Я нашел в журнале только слишком глубокий уровень стека, не более того. Вероятно, это проблема с отношениями между моделями.

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):  

Затем я запускаю консоль и пытаюсь запустить

o=order.new
o.save!

полный журнал SQL

Если я изменю cache_classes на false в производстве, тогда сработает. Моя версия жемчужин. Драгоценные камни одинаковы в состоянии производства и разработки.


person LuiGi    schedule 12.11.2011    source источник
comment
Обратите внимание, что вы сбросили свой хешированный пароль в пирожное — надеюсь, это не имеет значения. (Да, это было бы мучением, но все же.) Кстати, я заметил в конце ROLLBACK. Почему это не произошло в тот момент?   -  person sarnold    schedule 12.11.2011
comment
Это пароль гостевого пользователя. Он выполняет откат, потому что совершает рубиновую ошибку (слишком глубокий уровень стека - выполняется какой-то рекурсивный код), или я ошибаюсь? Здесь представлены запросы успешного выполнения. Сохранить   -  person LuiGi    schedule 12.11.2011
comment
Я думаю, что эта проблема здесь order.after_create создает новую корректировку, которая after_update вызывает корректировку.order.update!, которая вызывает order.update_adjustments ` def update_adjustments self.adjustments.reload.each(&:update!) end `   -  person LuiGi    schedule 12.11.2011
comment
Я решил проблему с написанием order_decorator. Я переопределяю метод с помощью это. Я надеюсь, что этот обходной путь не повлияет на другие отношения к модели заказа и настройки.   -  person LuiGi    schedule 12.11.2011
comment
Не забудьте опубликовать свой ответ здесь и отметить его как принятый, чтобы кому-то другому было легче рассказать о решении в будущем! Спасибо!   -  person sarnold    schedule 13.11.2011


Ответы (1)