堆栈级别太深(SystemStackError)actionpack [英] Stack level too deep (SystemStackError) actionpack

查看:90
本文介绍了堆栈级别太深(SystemStackError)actionpack的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Rails开发一个Web应用程序,但出现错误.

I am developing a web application with ruby ​​on rails and I have an error.

在RAILS ADMIN控制台中浏览几次后,错误随机出现:

The error appears randomly after navigating several times in the RAILS ADMIN console :

我不知道该怎么去解决问题.

I do not know which way to go to solve the problem.

Controller#Action
         new_user_session GET    /users/sign_in(.:format)                                                                 devise/sessions#new
             user_session POST   /users/sign_in(.:format)                                                                 devise/sessions#create
     destroy_user_session DELETE /users/sign_out(.:format)                                                                devise/sessions#destroy
        new_user_password GET    /users/password/new(.:format)                                                            devise/passwords#new
       edit_user_password GET    /users/password/edit(.:format)                                                           devise/passwords#edit
            user_password PATCH  /users/password(.:format)                                                                devise/passwords#update
                          PUT    /users/password(.:format)                                                                devise/passwords#update
                          POST   /users/password(.:format)                                                                devise/passwords#create
 cancel_user_registration GET    /users/cancel(.:format)                                                                  devise/registrations#cancel
    new_user_registration GET    /users/sign_up(.:format)                                                                 devise/registrations#new
   edit_user_registration GET    /users/edit(.:format)                                                                    devise/registrations#edit
        user_registration PATCH  /users(.:format)                                                                         devise/registrations#update
                          PUT    /users(.:format)                                                                         devise/registrations#update
                          DELETE /users(.:format)                                                                         devise/registrations#destroy
                          POST   /users(.:format)                                                                         devise/registrations#create
              rails_admin        /admin                                                                                   RailsAdmin::Engine
                     root GET    /                                                                                        home#index
                  contact GET    /contact(.:format)                                                                       home#contact
                   propos GET    /propos(.:format)                                                                        home#propos
                 settings GET    /settings(.:format)                                                                      settings#index
                  collect GET    /collect(.:format)                                                                       collect#index
            dashboardPres GET    /dashboardPres(.:format)                                                                 dashboard#index
                          POST   /settings(.:format)                                                                      settings#index
                          POST   /dashboardPres(.:format)                                                                 dashboard#index
                          POST   /collect(.:format)                                                                       collect#index
           collect_update POST   /collect_update(.:format)                                                                collect#update
       rails_service_blob GET    /rails/active_storage/blobs/:signed_id/*filename(.:format)                               active_storage/blobs#show
rails_blob_representation GET    /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show
       rails_disk_service GET    /rails/active_storage/disk/:encoded_key/*filename(.:format)                              active_storage/disk#show
update_rails_disk_service PUT    /rails/active_storage/disk/:encoded_token(.:format)                                      active_storage/disk#update
     rails_direct_uploads POST   /rails/active_storage/direct_uploads(.:format)                                           active_storage/direct_uploads#create

Routes for RailsAdmin::Engine:
  dashboard GET         /                                      rails_admin/main#dashboard
      index GET|POST    /:model_name(.:format)                 rails_admin/main#index
        new GET|POST    /:model_name/new(.:format)             rails_admin/main#new
     export GET|POST    /:model_name/export(.:format)          rails_admin/main#export
bulk_delete POST|DELETE /:model_name/bulk_delete(.:format)     rails_admin/main#bulk_delete
bulk_action POST        /:model_name/bulk_action(.:format)     rails_admin/main#bulk_action
       show GET         /:model_name/:id(.:format)             rails_admin/main#show
       edit GET|PUT     /:model_name/:id/edit(.:format)        rails_admin/main#edit
     delete GET|DELETE  /:model_name/:id/delete(.:format)      rails_admin/main#delete
show_in_app GET         /:model_name/:id/show_in_app(.:format) rails_admin/main#show_in_app

主控制器

class ApplicationController < ActionController::Base
  rescue_from DeviseLdapAuthenticatable::LdapException do |exception|
    render :text => exception, :status => 500
  end
  before_action :persist_last_visited_path, :authenticate_user!
  before_action :configure_devise_parameters, if: :devise_controller?


  rescue_from CanCan::AccessDenied do |exception|
      redirect_to root_url, :alert => exception.message
  end

  def after_sign_in_path_for(resource)
    if cookies[:last_visited_path].present?
      cookies[:last_visited_path]
     else
      root_path
     end
  end

  def configure_devise_parameters
      devise_parameter_sanitizer.permit(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation) }
  end


  def persist_last_visited_path
    unless Rails.configuration.ignored_paths.include?(request.path) || request.xhr?   
      cookies[:last_visited_path] = request.path
    end
  end

end

完整跟踪:

actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:689:in `block (2 levels) in define_generate_prefix'
actionpack (5.2.2) lib/action_dispatch/routing/route_set.rb:813:in `url_for'
actionpack (5.2.2) lib/action_dispatch/routing/route_set.rb:273:in `call'
actionpack (5.2.2) lib/action_dispatch/routing/route_set.rb:214:in `call'
actionpack (5.2.2) lib/action_dispatch/routing/route_set.rb:331:in `block (2 levels) in define_url_helper'
rails_admin (1.4.2) app/views/rails_admin/main/dashboard.html.haml:12:in `block in __usr_local_bundle_gems_rails_admin_______app_views_rails_admin_main_dashboard_html_haml___4103999051765141740_69997247796300'
rails_admin (1.4.2) app/views/rails_admin/main/dashboard.html.haml:10:in `each'
rails_admin (1.4.2) app/views/rails_admin/main/dashboard.html.haml:10:in `__usr_local_bundle_gems_rails_admin_______app_views_rails_admin_main_dashboard_html_haml___4103999051765141740_69997247796300'
actionview (5.2.2) lib/action_view/template.rb:159:in `block in render'
activesupport (5.2.2) lib/active_support/notifications.rb:170:in `instrument'
actionview (5.2.2) lib/action_view/template.rb:354:in `instrument_render_template'
actionview (5.2.2) lib/action_view/template.rb:157:in `render'
actionview (5.2.2) lib/action_view/renderer/template_renderer.rb:54:in `block (2 levels) in render_template'
actionview (5.2.2) lib/action_view/renderer/abstract_renderer.rb:44:in `block in instrument'
activesupport (5.2.2) lib/active_support/notifications.rb:168:in `block in instrument'
activesupport (5.2.2) lib/active_support/notifications/instrumenter.rb:23:in `instrument'
activesupport (5.2.2) lib/active_support/notifications.rb:168:in `instrument'
actionview (5.2.2) lib/action_view/renderer/abstract_renderer.rb:43:in `instrument'
actionview (5.2.2) lib/action_view/renderer/template_renderer.rb:53:in `block in render_template'
actionview (5.2.2) lib/action_view/renderer/template_renderer.rb:61:in `render_with_layout'
actionview (5.2.2) lib/action_view/renderer/template_renderer.rb:52:in `render_template'
actionview (5.2.2) lib/action_view/renderer/template_renderer.rb:16:in `render'
actionview (5.2.2) lib/action_view/renderer/renderer.rb:44:in `render_template'
actionview (5.2.2) lib/action_view/renderer/renderer.rb:25:in `render'
actionview (5.2.2) lib/action_view/rendering.rb:103:in `_render_template'
actionpack (5.2.2) lib/action_controller/metal/streaming.rb:219:in `_render_template'
actionview (5.2.2) lib/action_view/rendering.rb:84:in `render_to_body'
actionpack (5.2.2) lib/action_controller/metal/rendering.rb:52:in `render_to_body'
actionpack (5.2.2) lib/action_controller/metal/renderers.rb:142:in `render_to_body'
actionpack (5.2.2) lib/abstract_controller/rendering.rb:25:in `render'
actionpack (5.2.2) lib/action_controller/metal/rendering.rb:36:in `render'
actionpack (5.2.2) lib/action_controller/metal/instrumentation.rb:46:in `block (2 levels) in render'
activesupport (5.2.2) lib/active_support/core_ext/benchmark.rb:14:in `block in ms'
/usr/local/lib/ruby/2.5.0/benchmark.rb:308:in `realtime'
activesupport (5.2.2) lib/active_support/core_ext/benchmark.rb:14:in `ms'
actionpack (5.2.2) lib/action_controller/metal/instrumentation.rb:46:in `block in render'
actionpack (5.2.2) lib/action_controller/metal/instrumentation.rb:87:in `cleanup_view_runtime'
activerecord (5.2.2) lib/active_record/railties/controller_runtime.rb:31:in `cleanup_view_runtime'
actionpack (5.2.2) lib/action_controller/metal/instrumentation.rb:45:in `render'
/usr/local/bundle/bundler/gems/remotipart-999f98133c6f/lib/remotipart/render_overrides.rb:17:in `render_with_remotipart'
rails_admin (1.4.2) lib/rails_admin/config/actions/dashboard.rb:37:in `block (2 levels) in <class:Dashboard>'
rails_admin (1.4.2) app/controllers/rails_admin/main_controller.rb:22:in `instance_eval'
rails_admin (1.4.2) app/controllers/rails_admin/main_controller.rb:22:in `dashboard'
actionpack (5.2.2) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (5.2.2) lib/abstract_controller/base.rb:194:in `process_action'
actionpack (5.2.2) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (5.2.2) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (5.2.2) lib/active_support/callbacks.rb:132:in `run_callbacks'
actionpack (5.2.2) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (5.2.2) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (5.2.2) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
activesupport (5.2.2) lib/active_support/notifications.rb:168:in `block in instrument'
activesupport (5.2.2) lib/active_support/notifications/instrumenter.rb:23:in `instrument'
activesupport (5.2.2) lib/active_support/notifications.rb:168:in `instrument'
actionpack (5.2.2) lib/action_controller/metal/instrumentation.rb:32:in `process_action'
actionpack (5.2.2) lib/action_controller/metal/params_wrapper.rb:256:in `process_action'
activerecord (5.2.2) lib/active_record/railties/controller_runtime.rb:24:in `process_action'
actionpack (5.2.2) lib/abstract_controller/base.rb:134:in `process'
actionview (5.2.2) lib/action_view/rendering.rb:32:in `process'
actionpack (5.2.2) lib/action_controller/metal.rb:191:in `dispatch'
actionpack (5.2.2) lib/action_controller/metal.rb:252:in `dispatch'
actionpack (5.2.2) lib/action_dispatch/routing/route_set.rb:52:in `dispatch'
actionpack (5.2.2) lib/action_dispatch/routing/route_set.rb:34:in `serve'
actionpack (5.2.2) lib/action_dispatch/journey/router.rb:52:in `block in serve'
actionpack (5.2.2) lib/action_dispatch/journey/router.rb:35:in `each'
actionpack (5.2.2) lib/action_dispatch/journey/router.rb:35:in `serve'
actionpack (5.2.2) lib/action_dispatch/routing/route_set.rb:840:in `call'
railties (5.2.2) lib/rails/engine.rb:524:in `call'
railties (5.2.2) lib/rails/railtie.rb:190:in `public_send'
railties (5.2.2) lib/rails/railtie.rb:190:in `method_missing'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
actionpack (5.2.2) lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack (5.2.2) lib/action_dispatch/journey/router.rb:52:in `block in serve'
actionpack (5.2.2) lib/action_dispatch/journey/router.rb:35:in `each'
actionpack (5.2.2) lib/action_dispatch/journey/router.rb:35:in `serve'
actionpack (5.2.2) lib/action_dispatch/routing/route_set.rb:840:in `call'
rack-pjax (1.1.0) lib/rack/pjax.rb:12:in `call'
/usr/local/bundle/bundler/gems/remotipart-999f98133c6f/lib/remotipart/middleware.rb:32:in `call'
warden (1.2.8) lib/warden/manager.rb:36:in `block in call'
warden (1.2.8) lib/warden/manager.rb:34:in `catch'
warden (1.2.8) lib/warden/manager.rb:34:in `call'
rack (2.0.6) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.0.6) lib/rack/etag.rb:25:in `call'
rack (2.0.6) lib/rack/conditional_get.rb:25:in `call'
rack (2.0.6) lib/rack/head.rb:12:in `call'
actionpack (5.2.2) lib/action_dispatch/http/content_security_policy.rb:18:in `call'
rack (2.0.6) lib/rack/session/abstract/id.rb:232:in `context'
rack (2.0.6) lib/rack/session/abstract/id.rb:226:in `call'
actionpack (5.2.2) lib/action_dispatch/middleware/cookies.rb:670:in `call'
activerecord (5.2.2) lib/active_record/migration.rb:559:in `call'
actionpack (5.2.2) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
activesupport (5.2.2) lib/active_support/callbacks.rb:98:in `run_callbacks'
actionpack (5.2.2) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (5.2.2) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (5.2.2) lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'
web-console (3.7.0) lib/web_console/middleware.rb:135:in `call_app'
web-console (3.7.0) lib/web_console/middleware.rb:22:in `block in call'
web-console (3.7.0) lib/web_console/middleware.rb:20:in `catch'
web-console (3.7.0) lib/web_console/middleware.rb:20:in `call'
actionpack (5.2.2) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
railties (5.2.2) lib/rails/rack/logger.rb:38:in `call_app'
railties (5.2.2) lib/rails/rack/logger.rb:26:in `block in call'
activesupport (5.2.2) lib/active_support/tagged_logging.rb:71:in `block in tagged'
activesupport (5.2.2) lib/active_support/tagged_logging.rb:28:in `tagged'
activesupport (5.2.2) lib/active_support/tagged_logging.rb:71:in `tagged'
railties (5.2.2) lib/rails/rack/logger.rb:26:in `call'
sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (5.2.2) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (5.2.2) lib/action_dispatch/middleware/request_id.rb:27:in `call'
rack (2.0.6) lib/rack/method_override.rb:22:in `call'
rack (2.0.6) lib/rack/runtime.rb:22:in `call'
activesupport (5.2.2) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
actionpack (5.2.2) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (5.2.2) lib/action_dispatch/middleware/static.rb:127:in `call'
rack (2.0.6) lib/rack/sendfile.rb:111:in `call'
railties (5.2.2) lib/rails/engine.rb:524:in `call'
puma (3.12.0) lib/puma/configuration.rb:225:in `call'
puma (3.12.0) lib/puma/server.rb:658:in `handle_request'
puma (3.12.0) lib/puma/server.rb:472:in `process_client'
puma (3.12.0) lib/puma/server.rb:332:in `block in run'
puma (3.12.0) lib/puma/thread_pool.rb:133:in `block in spawn_thread' 

有人可以帮我解决这个问题吗?

Can someone help me to solve this problem ?

谢谢

推荐答案

一个选项是 RailsAdmin 无法确定您的管理路由的前缀,因为它们之间存在重叠.您可以通过在控制台上运行 rake route 来检查所有生成的路由.

An option is that RailsAdmin cannot decide the prefix for your admin routes since there's an overlap in them. You can check all generated routes by running rake routes on your console.

您在MainController上是否有重定向?因为从stacktrace看来,您似乎是由于 redirect_to 或没有有效的管理会话而导致的重定向循环.如果您可以发布您的 home#index 或整个MainController的代码,我可以提供一个更好的答案.

Do you have a redirect on your MainController? Because from the stacktrace it seems like you are either in a redirect loop caused by a redirect_to or by not having a valid admin session. If you can post the code of your home#index or the whole MainController I could provide a better answer.

这篇关于堆栈级别太深(SystemStackError)actionpack的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆