Techioz Blog

Ruby on Rails 7.x.x がパブリック フォルダーをレンダリングしないのはなぜですか?ファビコンや 404.html ページではありません。モジュールを使用していますが、動作しません

概要

私は懸念を利用します

module ErrorHandling
  extend ActiveSupport::Concern

  included do
    rescue_from ActiveRecord::RecordNotFound, with: :notfound

    private

    def notfound(exception)
      logger.warn exception
      render file: 'public/404.html', status: :not_found, layout: false
    end
  end
end

そして、それをApplicationクラスに含めますErrorHandlingを含めますが、ファイル「public/404.html」をレンダリングしません。何が問題ですか?

この問題を解決するために全力を尽くしていますが、何もできません

解決策

render: ファイルに相対パス名を渡すと、Raiuls は次のメッセージを含む ArgumentError をスローします。

`render file:` should be given the absolute path to a file. 'public/404.html' was given instead

ここで相対パスを渡す機能は Rails 6.0 で非推奨となり、Rails 6.1.0 で最終的に削除されました。

RAW ファイルをレンダリングするには、現在のドキュメントに従う必要があります。