未定义的方法' has_content_type?'为零:NilClass
undefined method `has_content_type?' for nil:NilClass
我有一个控制器动作,它使用一些Javascript在我的页面上加载表单。当我提交我的表单,它没有创建一个Rails请求对象,我得到错误在我的问题标题。
这是我的表单加载到DOM后:
<form class="new_alliance" id="new_alliance" action="/alliances" accept-charset="UTF-8" method="post">
<input name="utf8" type="hidden" value="✓"><input type="hidden" name="authenticity_token" value="4aFNLwGQ5+LubOhZYgTxO+HIMRUpc15JeiWruLMrGWYrurX0Ugk/HLW2I3hMtrrCWzCJVORcNkXbFeJuS61Fxw==">
<input value="downstream_requested" type="hidden" name="alliance[status]" id="alliance_status">
<input value="7" type="hidden" name="alliance[upstream_group_id]" id="alliance_upstream_group_id">
<input value="1" type="hidden" name="alliance[downstream_group_id]" id="alliance_downstream_group_id">
<input type="submit" name="commit" value="Request" data-disable-with="Request">
这就是我得到NoMethodError的地方:
actionpack (5.0.0.1) lib/action_controller/metal/params_wrapper。b (line 2)
def _wrapper_enabled?
return false unless request.has_content_type?
ref = request.content_mime_type.ref
_wrapper_formats.include?(ref) && _wrapper_key && !request.request_parameters[_wrapper_key]
end
request的值为nil。当我查看跟踪时,它看起来像是ActionDispatch正确设置了我的控制器和动作名称。我使用better_errors,对于我的请求信息,它说:
#<ActionDispatch::Request::Session:0x7fa11c000ce8 not yet loaded>
我觉得我一直在这条路上,所以我有点困惑。有什么办法可以解决这个问题吗?
编辑:每个请求添加完整的错误跟踪。
Started POST "/alliances" for 127.0.0.1 at 2016-10-20 15:43:37 -0700
NoMethodError - undefined method `has_content_type?' for nil:NilClass:
actionpack (5.0.0.1) lib/action_controller/metal/params_wrapper.rb:279:in `_wrapper_enabled?'
actionpack (5.0.0.1) lib/action_controller/metal/params_wrapper.rb:231:in `process_action'
activerecord (5.0.0.1) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (5.0.0.1) lib/abstract_controller/base.rb:126:in `process'
actionview (5.0.0.1) lib/action_view/rendering.rb:30:in `process'
actionpack (5.0.0.1) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (5.0.0.1) lib/action_controller/metal.rb:262:in `dispatch'
actionpack (5.0.0.1) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (5.0.0.1) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (5.0.0.1) lib/action_dispatch/journey/router.rb:39:in `block in serve'
actionpack (5.0.0.1) lib/action_dispatch/journey/router.rb:26:in `serve'
actionpack (5.0.0.1) lib/action_dispatch/routing/route_set.rb:725:in `call'
bullet (5.4.2) lib/bullet/rack.rb:10:in `call'
warden (1.2.6) lib/warden/manager.rb:35:in `block in call'
warden (1.2.6) lib/warden/manager.rb:34:in `call'
rack (2.0.1) lib/rack/etag.rb:25:in `call'
rack (2.0.1) lib/rack/conditional_get.rb:38:in `call'
rack (2.0.1) lib/rack/head.rb:12:in `call'
rack (2.0.1) lib/rack/session/abstract/id.rb:222:in `context'
rack (2.0.1) lib/rack/session/abstract/id.rb:216:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/cookies.rb:613:in `call'
activerecord (5.0.0.1) lib/active_record/migration.rb:552:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
activesupport (5.0.0.1) lib/active_support/callbacks.rb:97:in `__run_callbacks__'
activesupport (5.0.0.1) lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
activesupport (5.0.0.1) lib/active_support/callbacks.rb:90:in `run_callbacks'
actionpack (5.0.0.1) lib/action_dispatch/middleware/callbacks.rb:36:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
better_errors (2.1.1) lib/better_errors/middleware.rb:84:in `protected_app_call'
better_errors (2.1.1) lib/better_errors/middleware.rb:79:in `better_errors_call'
better_errors (2.1.1) lib/better_errors/middleware.rb:57:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
web-console (3.1.1) lib/web_console/middleware.rb:131:in `call_app'
web-console (3.1.1) lib/web_console/middleware.rb:28:in `block in call'
web-console (3.1.1) lib/web_console/middleware.rb:18:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
railties (5.0.0.1) lib/rails/rack/logger.rb:36:in `call_app'
railties (5.0.0.1) lib/rails/rack/logger.rb:24:in `block in call'
activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:70:in `block in tagged'
activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (5.0.0.1) lib/active_support/tagged_logging.rb:70:in `tagged'
railties (5.0.0.1) lib/rails/rack/logger.rb:24:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/request_id.rb:24:in `call'
rack (2.0.1) lib/rack/method_override.rb:22:in `call'
rack (2.0.1) lib/rack/runtime.rb:22:in `call'
activesupport (5.0.0.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.0.0.1) lib/action_dispatch/middleware/static.rb:136:in `call'
rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
railties (5.0.0.1) lib/rails/engine.rb:522:in `call'
rack (2.0.1) lib/rack/handler/webrick.rb:86:in `service'
/Users/ianyoung/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/webrick/httpserver.rb:140:in `service'
/Users/ianyoung/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/webrick/httpserver.rb:96:in `run'
/Users/ianyoung/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/webrick/server.rb:296:in `block in start_thread'
我有一个名为request
的方法在我的AlliancesController。
这似乎是一个经常发生的问题,当你忘记重启你的服务器。尝试退出服务器并重新启动,看看会发生什么。
相关文章:
- 如何计数递减ng点击限制为零
- 字符串为零的JavaScript比较运算符
- Javascript检查参数是否为零值
- 当firefox和chrome时,XMLHttpRequest状态始终为零
- .to固定为3位,但最后一位应为零
- php中的函数或介于-200和200之间但不为零的数字
- KendoUI网格客户端分页在总页面上总是显示为零
- javascript变量似乎为零,但不是
- 在没有动画的情况下将进度条重置为零(在引导程序中)
- ThreeJS:实例化对象会将其位置设置为零
- 从值为零angularjs的时间中删除分钟部分
- 如果第一个字符为零,则使用Javascript修剪第一个字符
- 为什么运算符equal没有将从valueOf()获得的null转换为零
- AngularJS ng-repeat列表是动态构建的,$index始终为零
- 如何创建一个倒数计时器,用户在其中输入任何数字并将其从该数字显示为零
- 不能使用正则表达式将空格替换为零宽度空间
- 使用 JavaScript 在秒表中将时间值设置为零
- 如何防止值舍入为零 javascript
- HTML2canvas 创建一个宽度和高度为零的画布
- 未定义的方法' has_content_type?'为零:NilClass