系统堆栈错误 - 堆栈级别太深

SystemStackError - Stack Level Too Deep

本文关键字:堆栈 错误 系统      更新时间:2023-09-26

我知道这里有很多系统堆栈错误问题...但每个问题和答案都是独一无二的。并且没有找到一个靠近我的。

真的不明白为什么我会收到此错误...

我不需要视图,因为表单是通过 ajax 发送的。我验证了我的编码是否适用于使用 rails 控制台插入新记录。

我验证了路线:

request_user POST  /users/:id/request(.:format)   users#request

提交此表单时,我收到系统堆栈错误:

SystemStackError at /users/11940/request
========================================
> stack level too deep
actionpack (3.2.3) lib/action_dispatch/middleware/reloader.rb, line 70
----------------------------------------------------------------------
``` ruby
   65         response = @app.call(env)
   66         response[2] = ActionDispatch::BodyProxy.new(response[2]) { cleanup! }
   67         response
   68       rescue Exception
   69         cleanup!
>  70         raise
   71       end
   72   
   73       def prepare! #:nodoc:
   74         run_callbacks :prepare if validated?
   75       end
```
App backtrace
-------------

Full backtrace
--------------
 - actionpack (3.2.3) lib/action_dispatch/middleware/reloader.rb:70:in `'

JavaScript 通过 AJAX 提交

     $("#user_feature_request").dialog({
        autoOpen: false,
        width: 500,
        buttons: {
            "Submit": function() {
                var id = $("#request").val();
                $.ajax({
                    url: "/users/" + id + "/request",
                    data: $("#request_form").serialize(),
                    type: "POST",
                    success: function (data) {
                        alert(data);
                        $("#user_feature_request").dialog("close");
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        alert('error: ' + textStatus + ': ' + errorThrown);
                    }
                });
                return false;
            },
            "Cancel": function() {
                $(this).dialog("close");
            }
        }
    });
    $("#request").on("click", function() {
        $("#user_feature_request").dialog("open");
    });

控制器

  def request
    user = params[:user]
    r = Request.new
    r.user_id = params[:id]
    r.feature = user[:request]
    r.comment = user[:comment]
    r.repair = user[:issue]
    r.save
  end

形式:

<div class="main">
  <div id="user_feature_request" title="Comment / Requested Features">
    <form id="request_form">
      <input id="user_id" name="user[id]" type="hidden" value="<%= current_user.id %>"></input>
      Requested Feature:
      <textarea cols="450" id="user_request" name="user[request]" rows="5"></textarea>
      <br/>
      Technical Issue:
      <textarea cols="450" id="user_issue" name="user[issue]" rows="5"></textarea>
      <br/>
      Comments:
      <textarea cols="450" id="user_comment" name="user[comment]" rows="5"></textarea>
    </form>
  </div>
</div>
这是

由于您的模型名称和/或控制器操作名称(Requestrequest)。这些是 Rails 中的保留字。