Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 避免错误:缺少此请求格式和变量的模板_Ruby On Rails - Fatal编程技术网

Ruby on rails 避免错误:缺少此请求格式和变量的模板

Ruby on rails 避免错误:缺少此请求格式和变量的模板,ruby-on-rails,Ruby On Rails,我的ruby on rails应用程序的端点位于http://localhost:3000/searches/new。当我在那里导航时,一切都很好。但是当我导航到http://localhost:3000/searches/new.json,它会引发此错误,导致http-500:SearchesController#new缺少此请求格式和变体的模板。request.formats:[“application/json”]request.variant:[] 我怎样才能让它停止那样做?我希望它像其

我的ruby on rails应用程序的端点位于
http://localhost:3000/searches/new
。当我在那里导航时,一切都很好。但是当我导航到
http://localhost:3000/searches/new.json
,它会引发此错误,导致http-500:
SearchesController#new缺少此请求格式和变体的模板。request.formats:[“application/json”]request.variant:[]

我怎样才能让它停止那样做?我希望它像其他所有不退出的资源请求一样返回404

从理论上讲,RubyonRails似乎将URI路径末尾的扩展视为某种格式说明符。这只是RubyonRails的惯例吗?或者我不知道URI或REST规范中是否有一些模糊的条款

我正在使用RubyonRails 5.2


真奇怪。当我将“.json”附加到路径的末尾时,一些端点返回406。其他500人。下面是后者的堆栈跟踪

I, [2020-06-16T06:10:06.410101 #2816]  INFO -- : Processing by WelcomeController#talent as JSON
D, [2020-06-16T06:10:06.426042 #2816] DEBUG -- :   User Load (1.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", 81], ["LIMIT", 1]]
D, [2020-06-16T06:10:06.434018 #2816] DEBUG -- :   Private::Conversation Load (0.9ms)  SELECT "private_conversations".* FROM "private_conversations" WHERE ("private_conversations"."recipient_id" = $1 OR "private_conversations"."sender_id" = $2)  [["recipient_id", 81], ["sender_id", 81]]
D, [2020-06-16T06:10:06.435528 #2816] DEBUG -- :   Group::Conversation Load (0.7ms)  SELECT "group_conversations".* FROM "group_conversations" INNER JOIN "group_conversations_users" ON "group_conversations"."id" = "group_conversations_users"."conversation_id" WHERE "group_conversations_users"."user_id" = $1  [["user_id", 81]]
D, [2020-06-16T06:10:06.437254 #2816] DEBUG -- :    (0.6ms)  SELECT "group_conversations"."id" FROM "group_conversations" INNER JOIN "group_conversations_users" ON "group_conversations"."id" = "group_conversations_users"."conversation_id" WHERE "group_conversations_users"."user_id" = $1  [["user_id", 81]]
D, [2020-06-16T06:10:06.439379 #2816] DEBUG -- :   CACHE  (0.1ms)  SELECT "group_conversations"."id" FROM "group_conversations" INNER JOIN "group_conversations_users" ON "group_conversations"."id" = "group_conversations_users"."conversation_id" WHERE "group_conversations_users"."user_id" = $1  [["user_id", 81]]
E, [2020-06-16T06:10:06.448074 #2816] ERROR -- : Traceback (most recent call last):
    96: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/puma-4.3.3/lib/puma/thread_pool.rb:134:in `block in spawn_thread'
    95: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/puma-4.3.3/lib/puma/server.rb:328:in `block in run'
    94: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/puma-4.3.3/lib/puma/server.rb:472:in `process_client'
    93: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/puma-4.3.3/lib/puma/server.rb:682:in `handle_request'
    92: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/puma-4.3.3/lib/puma/configuration.rb:228:in `call'
    91: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/railties-5.2.4.2/lib/rails/engine.rb:524:in `call'
    90: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-cors-1.1.1/lib/rack/cors.rb:100:in `call'
    89: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-mini-profiler-2.0.1/lib/mini_profiler/profiler.rb:312:in `call'
    88: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/sendfile.rb:110:in `call'
    87: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/static.rb:127:in `call'
    86: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/executor.rb:14:in `call'
    85: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
    84: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/runtime.rb:22:in `call'
    83: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/method_override.rb:24:in `call'
    82: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/request_id.rb:27:in `call'
    81: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
    80: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
    79: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/railties-5.2.4.2/lib/rails/rack/logger.rb:26:in `call'
    78: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/tagged_logging.rb:71:in `tagged'
    77: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/tagged_logging.rb:28:in `tagged'
    76: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/tagged_logging.rb:71:in `block in tagged'
    75: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/railties-5.2.4.2/lib/rails/rack/logger.rb:26:in `block in call'
    74: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/railties-5.2.4.2/lib/rails/rack/logger.rb:38:in `call_app'
    73: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
    72: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'
    71: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/better_errors-2.7.0/lib/better_errors/middleware.rb:57:in `call'
    70: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/better_errors-2.7.0/lib/better_errors/middleware.rb:79:in `better_errors_call'
    69: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/better_errors-2.7.0/lib/better_errors/middleware.rb:84:in `protected_app_call'
    68: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/executor.rb:14:in `call'
    67: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
    66: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:98:in `run_callbacks'
    65: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
    64: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activerecord-5.2.4.2/lib/active_record/migration.rb:559:in `call'
    63: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/cookies.rb:670:in `call'
    62: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/session/abstract/id.rb:260:in `call'
    61: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/session/abstract/id.rb:266:in `context'
    60: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/http/content_security_policy.rb:18:in `call'
    59: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/head.rb:12:in `call'
    58: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/conditional_get.rb:27:in `call'
    57: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/etag.rb:27:in `call'
    56: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/tempfile_reaper.rb:15:in `call'
    55: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/warden-1.2.8/lib/warden/manager.rb:34:in `call'
    54: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/warden-1.2.8/lib/warden/manager.rb:34:in `catch'
    53: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/warden-1.2.8/lib/warden/manager.rb:36:in `block in call'
    52: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/remotipart-1.4.4/lib/remotipart/middleware.rb:32:in `call'
    51: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'
    50: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'
    49: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/rack-pjax-1.1.0/lib/rack/pjax.rb:12:in `call'
    48: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/routing/route_set.rb:840:in `call'
    47: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/journey/router.rb:35:in `serve'
    46: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/journey/router.rb:35:in `each'
    45: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/journey/router.rb:52:in `block in serve'
    44: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/routing/route_set.rb:34:in `serve'
    43: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/routing/route_set.rb:52:in `dispatch'
    42: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal.rb:252:in `dispatch'
    41: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal.rb:191:in `dispatch'
    40: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionview-5.2.4.2/lib/action_view/rendering.rb:32:in `process'
    39: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/abstract_controller/base.rb:134:in `process'
    38: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activerecord-5.2.4.2/lib/active_record/railties/controller_runtime.rb:24:in `process_action'
    37: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/params_wrapper.rb:256:in `process_action'
    36: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
    35: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/notifications.rb:168:in `instrument'
    34: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
    33: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/notifications.rb:168:in `block in instrument'
    32: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
    31: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/rescue.rb:22:in `process_action'
    30: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/abstract_controller/callbacks.rb:41:in `process_action'
    29: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:132:in `run_callbacks'
    28: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
    27: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/rendering.rb:30:in `process_action'
    26: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/abstract_controller/base.rb:194:in `process_action'
    25: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
    24: from /ch/app/controllers/welcome_controller.rb:13:in `talent'
    23: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/remotipart-1.4.4/lib/remotipart/render_overrides.rb:23:in `render'
    22: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/instrumentation.rb:45:in `render'
    21: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/sunspot_rails-2.5.0/lib/sunspot/rails/railties/controller_runtime.rb:15:in `cleanup_view_runtime'
    20: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activerecord-5.2.4.2/lib/active_record/railties/controller_runtime.rb:31:in `cleanup_view_runtime'
    19: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/instrumentation.rb:87:in `cleanup_view_runtime'
    18: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/instrumentation.rb:46:in `block in render'
    17: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/core_ext/benchmark.rb:14:in `ms'
    16: from /Users/makedon/.rvm/rubies/ruby-2.6.5/lib/ruby/2.6.0/benchmark.rb:308:in `realtime'
    15: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/core_ext/benchmark.rb:14:in `block in ms'
    14: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/instrumentation.rb:46:in `block (2 levels) in render'
    13: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/rendering.rb:36:in `render'
    12: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/abstract_controller/rendering.rb:25:in `render'
    11: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/renderers.rb:142:in `render_to_body'
    10: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/rendering.rb:52:in `render_to_body'
     9: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionview-5.2.4.2/lib/action_view/rendering.rb:84:in `render_to_body'
     8: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_controller/metal/streaming.rb:219:in `_render_template'
     7: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionview-5.2.4.2/lib/action_view/rendering.rb:103:in `_render_template'
     6: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionview-5.2.4.2/lib/action_view/renderer/renderer.rb:25:in `render'
     5: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionview-5.2.4.2/lib/action_view/renderer/renderer.rb:44:in `render_template'
     4: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionview-5.2.4.2/lib/action_view/renderer/template_renderer.rb:10:in `render'
     3: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionview-5.2.4.2/lib/action_view/renderer/template_renderer.rb:40:in `determine_template'
     2: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionview-5.2.4.2/lib/action_view/renderer/abstract_renderer.rb:20:in `find_template'
     1: from /Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionview-5.2.4.2/lib/action_view/lookup_context.rb:116:in `find'
/Users/makedon/.rvm/gems/ruby-2.6.5/gems/actionview-5.2.4.2/lib/action_view/path_set.rb:48:in `find': Missing template welcome/talent, application/talent with {:locale=>[:en], :formats=>[:json], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee, :haml]}. Searched in: (ActionView::MissingTemplate)
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/bh-1.3.6/lib/bh/views"
  * "/ch/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/twitter-bootstrap-rails-4.0.0/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/rails_admin_mydash-0.1.8/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/bundler/gems/rails_admin-782d4ddac486/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/mailboxer-0.15.1/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/kaminari-core-1.2.0/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/devise_invitable-1.7.5/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/devise-4.7.1/app/views"

I, [2020-06-16T06:10:06.449514 #2816]  INFO -- : Completed 500 Internal Server Error in 39ms (ActiveRecord: 3.3ms)


F, [2020-06-16T06:10:06.461776 #2816] FATAL -- : 
ActionView::MissingTemplate - Missing template welcome/talent, application/talent with {:locale=>[:en], :formats=>[:json], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee, :haml]}. Searched in:
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/bh-1.3.6/lib/bh/views"
  * "/ch/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/twitter-bootstrap-rails-4.0.0/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/rails_admin_mydash-0.1.8/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/bundler/gems/rails_admin-782d4ddac486/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/mailboxer-0.15.1/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/kaminari-core-1.2.0/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/devise_invitable-1.7.5/app/views"
  * "/Users/makedon/.rvm/gems/ruby-2.6.5/gems/devise-4.7.1/app/views"
:
  app/controllers/welcome_controller.rb:13:in `talent'

I, [2020-06-16T06:10:06.652543 #2816]  INFO -- : Started POST "/__better_errors/377e20f2e19f9287/variables" for 127.0.0.1 at 2020-06-16 06:10:06 -0700
不是这个答案。这导致发现了一个不同的根本问题。看到另一个答案了吗 您应该能够在应用程序控制器中编写自己的
default\u render
方法来覆盖丢失格式的处理方式

您可以在ActionController(您的应用程序控制器继承)代码库中看到行为是如何更改的。要更改默认行为,这里他们正在更改行为以呈现状态204,但这应该为如何使用404响应提供启发

下面是action controller的最新版本,以及它如何处理缺少的格式。请务必阅读课程顶部的文档

但是,我不得不问——为什么


我认为当前版本的rails返回一个406状态码——这是一个HTTP规范,适用于缺少格式的情况。规范还描述了应该使用accepts头请求格式——我认为URL结尾是rails的假设

这看起来像是welcome_控制器的天赋方法中的实际500错误,而不是在缺少模板时希望更改core rails的行为。我怀疑是某个gem导致了500错误(我首先要怪设备;这就是我的json响应出现问题的原因),但需要查看控制器(可能还有更多)才能进一步评论

同时,以实用主义的名义,而不是挖掘第三方的宝藏

默认情况下,rails将尝试在请求时使用json格式响应任何操作,并使用json模板文件的存在作为如何响应的指南。这样,您只需创建一个json模板,“它就可以正常工作”。但是,您可以明确告诉方法仅响应html:

def talent
    ...
    respond_to :html
end
或者,如果在任何欢迎操作中没有任何非html响应,可以在控制器级别执行:

class WelcomeController < ApplicationController
  respond_to :html

  def talent
    # Your code
  end
end
class WelcomeController
如果您只想显式地用html响应所有操作,您甚至可以在应用程序控制器级别执行此操作;但要警惕这一点


另请参阅,以了解在您的操作中更多地使用
respond_to

因此,为了总结自我发布问题以来的发现,似乎有些控制器使用406响应指定不支持格式的请求,这是正确和可接受的行为。而另一个响应为,500,这是不好的,因为500会触发警报。听起来,要弄清楚它的行为为何不同可能需要很长时间


我找到了一个有点骇客的解决方案,但这是结束无聊错误警报的最快方法。我刚刚为所有缺少的模板创建了包含文本“不支持”的文件

你能为你的控制器发布代码吗?有一种简单的方法,基本上比从Rails的胆量重写一个大的旧方法更简单吗?此应用程序返回500而不是204。为什么?当请求的资源不存在时,为什么我不想要500?这是关于rails团队在将其实现为406状态时的想法的一些讨论(以及rails如何将其打破为500,一度打破为204状态)。您可能会发现rails版本升级会给您一个更可接受的406响应。您不需要重写太多。如果从应用程序控制器中复制默认的渲染方法,然后将
raise ActionController::UnknownFormat
更改为渲染404。在rails 5.2上,您应该会收到406的状态代码。您将看到您描述的消息,但是状态代码不应该是在早期版本的rails中修复的500。你能检查状态码或从终端粘贴堆栈跟踪吗?这很奇怪。当我将“.json”附加到路径的末尾(这实际上是可以接受的行为)时,一些端点返回406,其他端点返回500。下面是后者的堆栈跟踪。我把它附加到原来的问题上。我的第二个答案是——在有问题的操作中添加
response\u to:html
,对你不起作用吗?