How to rescue page not found 404 in rails?

后端 未结 2 1700
闹比i
闹比i 2021-01-17 11:02

How to rescue page not found if user add wrong url in rails. I hope to show 404 page present in public folder if the url is invalid. How to do that? I was browsing about it

相关标签:
2条回答
  • 2021-01-17 11:43

    Solution for Rails 4

    On routes.rb:

    get '*unmatched_route', to: 'application#not_found'
    

    On application_controller.rb:

    def not_found
      # Your exception handling code here
    end
    
    0 讨论(0)
  • 2021-01-17 11:58

    i found the solution, check this out => http://techoctave.com/c7/posts/36-rails-3-0-rescue-from-routing-error-solution (great solution)

    routes.rb :

    # at the end of you routes.rb
    match '*a', :to => 'errors#routing', via: :get
    

    errors_controller.rb :

    class ErrorsController < ApplicationController
      def routing
        render_404
      end
    end
    

    application.rb :

    rescue_from ActionController::RoutingError, :with => :render_404
    
     private
      def render_404(exception = nil)
        if exception
            logger.info "Rendering 404: #{exception.message}"
        end
    
        render :file => "#{Rails.root}/public/404.html", :status => 404, :layout => false
      end
    
    0 讨论(0)
提交回复
热议问题