当任何记录不存在时如何重定向到404页面?

Par*_*nha 3 activerecord ruby-on-rails

例如。我有学生和教师模型。如果我访问数据库中不存在的学生或教师个人资料,它将引发为 ActiveRecord::RecordNotFound。

我已经在应用程序控制器中尝试过此操作,但仍然收到错误消息ActiveRecord::RecordNotFound而不是404 page

class ApplicationController < ActionController::Base
  rescue_from ActiveRecord::RecordNotFound, with: :render_404
end
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法解决这个问题呢?

谢谢。

小智 5

尝试这个 :)

    class ApplicationController < ActionController::Base
      rescue_from ActiveRecord::RecordNotFound, with: :record_not_found

      private

      def record_not_found
        render file: "#{Rails.root}/public/404", layout: true, status: :not_found
      end
    end
Run Code Online (Sandbox Code Playgroud)