突然私のレールapiアプリケーションで奇妙な問題を抱えています。RailsコントローラがTypeErrorで失敗する - 「フェイルセーフ応答中のエラー」?
クライアントが「get_auth_token」メソッドの1つを呼び出すと、次のエラーが発生します。エラーは、基本のapplication_controlerクラスをロードしようとすると発生します(エラーは1行目に発生します)。
この時点で、なぜアプリが「schema_migrations」に対して選択を実行しているのか、私には謎です。ここで
Started POST "/register/get_auth_token" for 127.0.0.1 at 2017-12-31 11:56:17 -0800
(1.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
TypeError (wrong argument type Class (expected Module)):
app/controllers/application_controller.rb:1:in `<top (required)>'
app/controllers/registration_controller.rb:1:in `<top (required)>'
Error during failsafe response: wrong argument type Class (expected Module)
/Users/jkramer/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionpack-5.1.3/lib/abstract_controller/helpers.rb:181:in `include'
/Users/jkramer/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionpack-5.1.3/lib/abstract_controller/helpers.rb:181:in `block in add_template_helper'
/Users/jkramer/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionpack-5.1.3/lib/abstract_controller/helpers.rb:181:in `module_eval'
/Users/jkramer/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionpack-5.1.3/lib/abstract_controller/helpers.rb:181:in `add_template_helper'
/Users/jkramer/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionpack-5.1.3/lib/abstract_controller/helpers.rb:110:in `block in helper'
/Users/jkramer/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionpack-5.1.3/lib/abstract_controller/helpers.rb:109:in `each'
/Users/jkramer/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionpack-5.1.3/lib/abstract_controller/helpers.rb:109:in `helper'
/Users/jkramer/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionpack-5.1.3/lib/action_controller/railties/helpers.rb:17:in `inherited'
/Users/jkramer/RubymineProjects/CrowdWisdomServer/app/controllers/application_controller.rb:1:in `<top (required)>'
/Users/jkramer/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:476:in `load'
...
は、アプリケーションのコントローラ
class ApplicationController < ActionController::Base
include ActionController::MimeResponds
protect_from_forgery with: :null_session
end
と呼ばれている実際のコントローラです:
class RegistrationController < ApplicationController
def get_auth_token
token = RegistrationManager.get_instance.get_auth_token(params)
if token.nil?
render json: {status: "authentication_failed"}
return
end
render json: {status: :ok, auth_token: token}
end
end
Jeez。ごめんなさい!以下の答えで実際の原因を参照してください。 – user1023110