diff options
author | Benjamin Neff <benjamin@coding4coffee.ch> | 2022-07-17 23:29:59 +0300 |
---|---|---|
committer | Benjamin Neff <benjamin@coding4coffee.ch> | 2022-07-20 22:26:58 +0300 |
commit | 17b84d3dddd2dcb9d1a0e7f203f4776f80539186 (patch) | |
tree | 4bf3edab8e346e443af244f133b4ff7161797a78 | |
parent | b5a46cf7bbd5e9a857e26443a40b5b1a6b696cb1 (diff) |
Fix rendering of error pages to remove deprecation warning for rails 6.0
-rw-r--r-- | app/views/errors/error_404.haml | 5 | ||||
-rw-r--r-- | app/views/errors/error_422.haml | 6 | ||||
-rw-r--r-- | app/views/errors/error_500.haml | 6 | ||||
-rw-r--r-- | app/views/layouts/error_page.haml | 9 | ||||
-rw-r--r-- | lib/error_page_renderer.rb | 32 |
5 files changed, 9 insertions, 49 deletions
diff --git a/app/views/errors/error_404.haml b/app/views/errors/error_404.haml index 847b92ef6..d04dbef99 100644 --- a/app/views/errors/error_404.haml +++ b/app/views/errors/error_404.haml @@ -1,10 +1,5 @@ - content_for(:page_title) do The page you were looking for doesn't exist (404) -.transparent.big-number - 404 %h3 These are not the kittens you're looking for. Move along. -%p - %a{href: "javascript:history.back()"} - Go Back? diff --git a/app/views/errors/error_422.haml b/app/views/errors/error_422.haml index cd3af7d46..3c7ff409f 100644 --- a/app/views/errors/error_422.haml +++ b/app/views/errors/error_422.haml @@ -1,13 +1,7 @@ - content_for(:page_title) do The change you wanted was rejected (422) -.transparent.big-number - 422 %h3 The change you wanted was rejected. %p Maybe you tried to change something you didn't have access to. - -%p - %a{href: "javascript:history.back()"} - Go Back? diff --git a/app/views/errors/error_500.haml b/app/views/errors/error_500.haml index d566b86ca..61ed69e54 100644 --- a/app/views/errors/error_500.haml +++ b/app/views/errors/error_500.haml @@ -1,8 +1,6 @@ - content_for(:page_title) do We're sorry, but something went wrong (500) -.transparent.big-number - 500 %h3 Internal server error. Our bad! Sorry about that. :( @@ -10,7 +8,3 @@ - if AppConfig.admins.podmin_email? %p Drop us an email to <a href="mailto:#{AppConfig.admins.podmin_email}">#{AppConfig.admins.podmin_email}</a>. - -%p - %a{href: "javascript:history.back()"} - Go Back? diff --git a/app/views/layouts/error_page.haml b/app/views/layouts/error_page.haml index 258ce9cb3..15f7047ea 100644 --- a/app/views/layouts/error_page.haml +++ b/app/views/layouts/error_page.haml @@ -11,5 +11,12 @@ = yield(:head) - %body{class: "error-#{@code}", id: "error_#{@code}"} + %body{class: "error-#{local_assigns[:code]}", id: "error_#{local_assigns[:code]}"} + .transparent.big-number + = local_assigns[:code] + = yield + + %p + %a{href: "javascript:history.back()"} + Go Back? diff --git a/lib/error_page_renderer.rb b/lib/error_page_renderer.rb index 65bd09dbc..4e968f9e0 100644 --- a/lib/error_page_renderer.rb +++ b/lib/error_page_renderer.rb @@ -6,44 +6,14 @@ class ErrorPageRenderer def initialize options={} @codes = options.fetch :codes, [404, 500] @output = options.fetch :output, "public/%s.html" - @vars = options.fetch :vars, {} @template = options.fetch :template, "errors/error_%s" @layout = options.fetch :layout, "layouts/error_page" end def render @codes.each do |code| - view = build_action_view - view.assign @vars.merge(code: code) path = Rails.root.join(@output % code) - File.write path, view.render(template: @template % code, layout: @layout) + File.write path, ApplicationController.render(@template % code, layout: @layout, locals: {code: code}) end end - - def helpers(&block) - @helpers = block - end - - private - - def build_action_view - paths = ::ActionController::Base.view_paths - ::ActionView::Base.new(paths).tap do |view| - view.class_eval do - include Rails.application.helpers - include Rails.application.routes.url_helpers - end - view.assets_manifest = build_manifest(Rails.application) - view.class_eval(&@helpers) if @helpers - end - end - - # Internal API from the sprocket-rails railtie, if somebody finds a way to - # call it, please replace it. Might need to be updated on sprocket-rails - # updates. - def build_manifest(app) - config = app.config - path = File.join(config.paths['public'].first, config.assets.prefix) - Sprockets::Manifest.new(app.assets, path, config.assets.manifest) - end end |