【发布时间】:2020-04-16 17:23:18
【问题描述】:
我有一个只有 Rails 6 API 的项目,它表现得很奇怪。
我的应用程序控制器有一个方法来挽救常见的异常:
class ApplicationController < ActionController::API
before_action :rescue_errors
private
def rescue_errors
rescue_from ActiveRecord::RecordNotFound do
render json: { error: { message: ['Record not found'] } }, status: :not_found
end
end
end
这是我的用户控制器:
class Api::V1::User::UsersController < ApplicationController
def show
user = User.find(params[:id])
render json: { user_id: user.id }, status: :ok
end
end
然后我尝试访问一个不存在的用户 id 以获取从 ApplicationController 继承的获救的 RecordNotFound 异常,我收到此错误:
<NoMethodError: undefined method `rescue_errors' for #<Api::V1::User::UsersController:0x00007f71484b3be0>\nDid you mean? rescue_handlers>
为什么 UserController 不从 ApplicationController 继承救援错误?
【问题讨论】:
-
您的 Rails 应用程序是仅 API 还是 API 和标准 MVC 两者?
-
仅限@lacostenycoder API
-
你之前read the comments是如何定义
rescue_from的吗?
标签: ruby-on-rails ruby oop inheritance