请提供帮助。
UsersController:
class UsersController < ApplicationController
before_action :set_user, only: [:show]
........
.........
def show
......
end
private
def set_user
@user = User.find_by_id(params[:id])
render_404 unless @user
end
end
ApplicattionController:
class ApplicationController < ActionController::Base
before_action :set_locale
protect_from_forgery with: :exception
private
def render_404
render file: "public/404.html", status: 404
end
end
在http://localhost:3000/users/24/
我看到了一个用户页面。
在http://localhost:3000/users/24242424/
我看到一个页面错误404。
在http://localhost:3000/qwertyghjfd
我看到一条错误消息:
路由错误没有路由匹配[GET]
我需要在http://localhost:3000/qwertyghjfd
我看到一个页面error404
答案 0 :(得分:0)
rescue_from ActionController::RoutingError, :with => : render_404
答案 1 :(得分:0)
默认情况下,生产应用程序将呈现404或500错误消息。这些消息包含在公用文件夹中的静态HTML文件中,分别位于404.html和500.html中。
为了响应 production 环境中的路由错误,将呈现404.html文件(默认情况下)。在开发中,您应该看到实际的错误消息(当然,除非您覆盖默认行为 - 指南将告诉您如何)。