У меня есть приложение 3.0.7, использующее активные скаффолды из github vhochstein / master.Я использую 3.x-совместимую версию, которую можно использовать как поставщик / плагин, вместо того, чтобы требовать gem-установки.
В производственном процессе она попадает в ActionView :: Template :: Error (слишком большой уровень стека),
beaumont@edouard:~/beaumont/current$ script/rails server -p 4000
ActionView::Template::Error (stack level too deep):
8: depth = Kernel.caller.count
9: logger.info "pagination: #{@page} #{depth}"
10: %>
11: <%= render :partial => 'list_pagination_links', :locals => { :current_page => @page } if @page.pager.infinite? || @page.pager.number_of_pages > 1 %>
12: </div>
13: <br clear="both" /><%# a hack for the Rico Corner problem %>
14: </div>
Я начал с поиска некоторой рекурсии в моем коде, а затем для цикла в моей модели данных, которая портила AS.Это произошло сначала с mod_passenger, но это также происходит с работающим сервером script / rails, подключенным к серверу.(Это мой бета-тестовый компьютер)
Он всегда умирает в Rendered vendor / plugins / active_scaffold / frontends / default / views / _list_pagination.html.erb (144.3ms 157).Я взломал ActionView, чтобы зарегистрировать Kernel.caller.count, чтобы я мог видеть, растет ли стек, но я не вижу этого.Я вижу глубину стека до 180. Кажется, не имеет значения, увеличу ли я размер стека перед запуском рельсов, но, возможно, что-то снова уменьшит стек.
В _list_pagination.html.erb,это вызывает list_pagination_links.Если я закомментирую, что звонки, то вещи не подведут.Я попытался сделать так, чтобы list_pagination_links ничего не делал (без кода!), Но он все равно умер при вызове рендеринга.Интересно, если в самом коде рендеринга этот стек либо рекурсивный, либо просто слишком большой.
Это не происходит на моем ноутбуке (debian sequeeze, 32-bit) в режиме разработки, нопроизойдет на моей машине с бета-версией (XEN VM, 32-bit, debian squeeze).Это происходило на моем ноутбуке время от времени, но не повторяемым образом, и перезапуск направляющих «решил» проблемы.Я еще не пробовал рабочий режим на своем ноутбуке, и я также подозреваю, что он может зависеть от данных!