Как спасти страницу не найдено 404 в рельсах?

Как спасти страницу не найдена, если пользователь добавляет неправильный URL-адрес в рельсы. Я надеюсь показать 404 страницу в общей папке, если URL недействителен. Как это сделать? Я просматривал это, но не мог найти решение. Я пробовал много способов решить проблему, но они, похоже, не работают. Я застрял здесь, пожалуйста, помогите.

Ответ 1

я нашел решение, проверьте это out = > http://techoctave.com/c7/posts/36-rails-3-0-rescue-from-routing-error-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

Ответ 2

Решение для Rails 4

На маршрутах .rb:

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

В приложении application_controller.rb:

def not_found
  # Your exception handling code here
end