カスタム例外をスローする別のミドルウェアで同様の問題が発生したため、実際には Apartment をまったく見ていませんが、おそらく次のようなものです。
#app/middleware/apartment/rescued_apartment_middleware.rb
module Apartment
class RescuedApartmentMiddleware < Apartment::Middleware
def call(env)
begin
super
rescue Apartment::SchemaNotFound
env[:apartment_schema_not_found] = true # to be later referenced in your ApplicationController
@app.call(env) # the middleware call method should return this, but it was probably short-circuited by the raise
end
end
end
end
次に、あなたの環境で:
config.middleware.use(Apartment::RescuedApartmentMiddleware, etc)
ApplicationController または任意のコントローラーから設定した環境変数にアクセスするには:
if request.env[:apartment_schema_not_found]
#handle
end
Ruby on Rails アプリケーションで OAuth::Unauthorized 例外からレスキューする方法のコンボ? Rails内からラック環境にアクセスするにはどうすればよいですか?