Rails使ってると、ActiveRecordNotFound
とかがraiseで上がった時に勝手にpublic/404.html がでたりしますが、あれが出るのはどういう仕組みなのかっていう部分的メモ(内容がまとまったらもうちょいちゃんと書きたい)
環境
rails (5.2.0)
やっているところ
以下の場所
def render_html(status) found = false path = "#{public_path}/#{status}.#{I18n.locale}.html" if I18n.locale path = "#{public_path}/#{status}.html" unless path && (found = File.exist?(path)) if found || File.exist?(path) render_format(status, 'text/html', File.read(path)) else [404, { "X-Cascade" => "pass" }, []] end end
render_format
の引数にてファイルパスをしていしてロードしている。格別そのままhtmlページをどーん!とかではなくちゃんとrenderとして処理をしていた。
あとがき
この処理に至るまでに話とか、ほかの処理との良い共存方法がありそうなのをググってたら見つけたのでまとめたい所存